Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Will Up

Transformar duas querys em uma (?)

Recommended Posts

Olá, amiguinhos. É o seguinte: Meu script tem duas querys, uma INSERT e uma SELECT.

Alguém pode me ajudar a transformar essas duas em uma só UHAUHAAHUHAHAU? Faz dois dias que tô quebrando a cabeça com isso :D

 

desculpa a pergunta mas pra quê? ?

 

veja

http://www.php.net/mysql_query

 

mysql_query(), simplesmente não suporta múltiplas queries !!

 

ou seja, ou você muda de lib, ou você nunca vai conseguir executar um insert e um select, com um mesmo único mysql_query() :lol:

http://www.php.net/manual/en/mysqli.multi-query.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá... pensa o seguinte.. vai trabalhar com SESSION ?

então precisa de um session_start() !!

 

<?
include"config.php";


$query = "INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) VALUES ('', '', '', '', '$filename', '', 'Yes', '', '$_SESSION[Username]', '$_SESSION[$Email_Address]')";

mysql_query($query) or die (mysql_error());
troca por:

 

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);

session_start();
include 'config.php';


$filename = $_FILES['Filedata']['name'];
$query = "INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) 
VALUES ('', '', '', '', '{$filename}', '', 'Yes', '', '{$_SESSION['Username']}', '{$_SESSION['Email_Address']}')";
echo $query,'<br />';
mysql_query($query) or die (mysql_error());
poste oque aparecer do echo que eu fiz.

 

 

http://forum.imasters.com.br/index.php?/topic/375800-orientacoes-para-uma-boa-participacao/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Notice: A session had already been started - ignoring session_start() in /home/theimage/public_html/config.php on line 36

 

Notice: Undefined index: Filedata in /home/theimage/public_html/upload.php on line 9

INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) VALUES ('', '', '', '', '', '', 'Yes', '', 'williancima', 'contato@linkaki.net')

 

Notice: Undefined variable: file in /home/theimage/public_html/upload.php on line 17

 

Notice: Undefined variable: file in /home/theimage/public_html/upload.php on line 18

 

 

Aconteceu a mesma coisa de antes. O caminho da imagem salva, o usuário e email, não...

Compartilhar este post


Link para o post
Compartilhar em outros sites

okay... execute assim:

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);

include 'config.php';

var_dump( $_FILES );//poste oque aparecer


$filename = $_FILES['Filedata']['name'];
$query = "INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) 
VALUES ('', '', '', '', '{$filename}', '', 'Yes', '', '{$_SESSION['Username']}', '{$_SESSION['Email_Address']}')";
echo $query,'<br />';
mysql_query($query) or die (mysql_error());

$path     = $_FILES['Filedata']['tmp_name'];
$new_path = 'images_files/'.$_FILES['Filedata']['name'];

echo move_uploaded_file( $path, $new_path );


e confira de novo lá no banco, pois a string SQL está correta:

INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) VALUES ('', '', '', '', '', '', 'Yes', '', 'williancima', 'contato@linkaki.net')

o problema está é no envio do arquivo.

 

e veja que se você vai usar o plugin para envio multiplo:

<a href="javascript:uploader.startUpload();">Iniciar Upload</a>
o $_FILES não faz sentido... e nunca vai chegar para você..

Compartilhar este post


Link para o post
Compartilhar em outros sites

array(0) { }

Notice: Undefined index: Filedata in /home/theimage/public_html/upload.php on line 10

 

Notice: Undefined index: $Email_Address in /home/theimage/public_html/upload.php on line 12

INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) VALUES ('', '', '', '', '', '', 'Yes', '', 'williancima', '')

 

Notice: Undefined index: Filedata in /home/theimage/public_html/upload.php on line 16

 

Notice: Undefined index: Filedata in /home/theimage/public_html/upload.php on line 17

 

 

A mesma coisa.. só gravou a imagem

 

 

Veja o script do upload:

 

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title>Upload múltiplo</title>
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
	<script type="text/javascript" src="../../js/multiUpload.js"></script>
	
	<script type="text/javascript">
		var uploader = new multiUpload('uploader', 'uploader_files', {
			swf:            '../../swf/multiUpload.swf',
			script:         'upload.php',
			expressInstall: '../../swf/expressInstall.swf',
			multi:          true
		});
	</script>

	<style type="text/css">
		@import '../../css/style.css';
		@import "../../css/multiUpload.css";
	</style>

</head>
<body>

	<h1>Upload múltiplo</h1>


	<br />

	<div id="uploader"></div>

	<div id="uploader_files"></div>

	<br style="clear:both" />

	<a href="javascript:uploader.startUpload();">Iniciar Upload</a> | <a href="javascript:uploader.clearUploadQueue();">Limpar fila de Upload</a>

	<br /><br />

</body>
</html>

Acho que tem alguma coisa à ser feita aí...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tá utilizando com $ dentro do SESSION. Retira ele:

{$_SESSION['Email_Address']}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tá utilizando com $ dentro do SESSION. Retira ele:

{$_SESSION['Email_Address']}

Sim, já tinha tirado. Não consegui ainda :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

É como eu disse cara, essas variáveis de sessão não estão armazenando os dados nelas, por isso elas estão indo nulas. Não tem lógica além dessa de conseguir gravar os dados da imagem e não gravar o usuário e email na mesma query.

 

Você iniciou a sessão antes de executar a query que está puxandos os dados da SESSION? Mostra o seu código ATUAL, depois de todas as dicas que a gente já te deu aqui.

 

Você deve estar errando em alguma besteira aí e não tá percebendo.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Taí o script:

 

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);

include 'config.php';

var_dump( $_FILES );

$filename = $_FILES['Filedata']['name'];
$query = "INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) 
VALUES ('', '', '', '', '{$filename}', '', 'Yes', '', '{$_SESSION['Username']}', '{$_SESSION['Email_Address']}')";
echo $query,'<br />';
mysql_query($query) or die (mysql_error());

$path     = $_FILES['Filedata']['tmp_name'];
$new_path = 'images_files/'.$_FILES['Filedata']['name'];

echo move_uploaded_file( $path, $new_path );

?>

Aparentemente está normal.

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou dar um INSERT direto pelo PHPMyAdmin para simular e ver se ta cadastrando corretamente sem dar erro?

 

Outra coisa, onde está iniciando a sessão nesta página? Ta faltando o session_start(); para você poder pegar os valores do usuário e email, por isso estão em branco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou dar um INSERT direto pelo PHPMyAdmin para simular e ver se ta cadastrando corretamente sem dar erro?

 

Outra coisa, onde está iniciando a sessão nesta página? Ta faltando o session_start(); para você poder pegar os valores do usuário e email, por isso estão em branco.

 

Já tem um session_start(); na página de login.

Quanto a outra pergunta, não sei dar INSERT direto (nunca tentei).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você vai utilizar SESSION na página, você tem que dar o session_start(); sempre.

 

Esta não é a página de login (creio eu), então você deve dar o start de qualquer forma para que ele possa pegar os dados do $_SESSION[];

 

Dê o start aí e tente. Caso exiba algum erro, por favor mostrar. E tbm mostra como ficou seu código com o session_start(); (lembre-se que ele deve estar logo abaixo do <?php na primeira linha dos códigos de todas as páginas que forem utilizar qualquer coisa da sessão.

 

Quanto a dar um INSERT direto que eu falei, é você ir no PHPMyAdmin e acessar o banco que você está trabalhando, e depois ir na opção SQL e escrever o seu INSERT lá para testar se tá tudo ok mesmo em relação ao banco. Mas creio que o problema seja com o session_start() mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, o script ficou assim:

 

<?php
session_start();
ini_set('display_errors', true);
error_reporting(E_ALL);

include 'config.php';

var_dump( $_FILES );

$filename = $_FILES['Filedata']['name'];
$query = "INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) 
VALUES ('', '', '', '', '{$filename}', '', 'Yes', '', '{$_SESSION['Username']}', '{$_SESSION['Email_Address']}')";
echo $query,'<br />';
mysql_query($query) or die (mysql_error());

$path     = $_FILES['Filedata']['tmp_name'];
$new_path = 'images_files/'.$_FILES['Filedata']['name'];

echo move_uploaded_file( $path, $new_path );

?>

Quando eu acesso esse script (upload.php) sem fazer o upload, o usuário e o email salvam normalmente. O problema não é no DB.

 

Tudo normal:

 

Notice: A session had already been started - ignoring session_start() in /home/theimage/public_html/config.php on line 36

array(0) { }

Notice: Undefined index: Filedata in /home/theimage/public_html/upload.php on line 10

INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) VALUES ('', '', '', '', '', '', 'Yes', '', 'williancima', 'contato@linkaki.net')

 

Notice: Undefined index: Filedata in /home/theimage/public_html/upload.php on line 16

 

Notice: Undefined index: Filedata in /home/theimage/public_html/upload.php on line 17

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, agora parece estar mais correto.

 

O problema era que o seu session_start() estava começando quando dava o include no arquivo "config.php", que já não era na primeira linha.

 

Agora você testou enviando o arquivo? Pois os erros agora são somente informando que não tem arquivo enviado, e realmente ele não vai salvar nada já que nada foi passado, né? :)

 

Tente fazer funcionar normalmente, fazendo o devido upload do arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, agora parece estar mais correto.

 

O problema era que o seu session_start() estava começando quando dava o include no arquivo "config.php", que já não era na primeira linha.

 

Agora você testou enviando o arquivo? Pois os erros agora são somente informando que não tem arquivo enviado, e realmente ele não vai salvar nada já que nada foi passado, né? :)

 

Tente fazer funcionar normalmente, fazendo o devido upload do arquivo.

 

Sim, já tentei. Só grava a imagem :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.