Will Up 0 Denunciar post Postado Junho 15, 2010 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 Segue as duas: $qData = "INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) VALUES ('', '', '', '', '$filename', '', 'Yes', '', '$aData[Username]', '$Email_Address')"; $qData = "select * from `users` where `Uid` = '$_SESSION[Uid]'"; Abraços \o/ Compartilhar este post Link para o post Compartilhar em outros sites
Arildo Borges 0 Denunciar post Postado Junho 16, 2010 Acho que se você adicionar um ponto após a segunda string vai dar certo, por exemplo: $qData = "INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) VALUES ('', '', '', '', '$filename', '', 'Yes', '', '$aData[Username]', '$Email_Address')"; $qData. = "select * from `users` where `Uid` = '$_SESSION[Uid]'"; Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Junho 16, 2010 Arildo, isso não vai funcionar porque você nao delimitou as querys. No MySQL você pode utilizar o ponto-e-virgula (;) para isso. Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Junho 16, 2010 Arildo, isso não vai funcionar porque você nao delimitou as querys. No MySQL você pode utilizar o ponto-e-virgula (;) para isso. Explique mais, amigo, por favor :) Compartilhar este post Link para o post Compartilhar em outros sites
Lok1 0 Denunciar post Postado Junho 16, 2010 Arildo, isso não vai funcionar porque você nao delimitou as querys. No MySQL você pode utilizar o ponto-e-virgula (;) para isso. Explique mais, amigo, por favor :) Depois da primeira query, utilize o ";" pra colocar a segunda. Ex: query 1 : UPDATE(...) query 2 : Select * from table Query junta => UPDATE(...); Select * from table Compartilhar este post Link para o post Compartilhar em outros sites
Diego Macêdo 6 Denunciar post Postado Junho 16, 2010 Will, basta colocar ponto-e-vírgula no final de cada query, daí o MySQL irá delimitar cada consulta. Ou seja, você pode enviar 2 consultas numa mesma linha, assim como o PHP trabalha. Só que cada linha de comando funciona até chegar ao delimitador. Em resumo, fica assim: $qData = "INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) VALUES ('', '', '', '', '$filename', '', 'Yes', '', '$aData[Username]', '$Email_Address');"; $qData. = "select * from `users` where `Uid` = '$_SESSION[Uid]';"; Espero ter ajudado! Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Junho 16, 2010 Arildo, isso não vai funcionar porque você nao delimitou as querys. No MySQL você pode utilizar o ponto-e-virgula (;) para isso. Explique mais, amigo, por favor :) Depois da primeira query, utilize o ";" pra colocar a segunda. Ex: query 1 : UPDATE(...) query 2 : Select * from table Query junta => UPDATE(...); Select * from table Vish, não entendi nada UHAUHAUAHUAH Poderia adaptar as querys que eu postei, por favor? :) Compartilhar este post Link para o post Compartilhar em outros sites
Diego Macêdo 6 Denunciar post Postado Junho 16, 2010 Copia as linhas que enviei e testa. :) Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Junho 16, 2010 Copia as linhas que enviei e testa. :) Não deu. Veja o script completo: <?php include "config.php"; $qData = "INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) VALUES ('', '', '', '', '$filename', '', 'Yes', '', '$aData[Username]', '$Email_Address');"; $qData. = "select * from `users` where `Uid` = '$_SESSION[Uid]';"; $rData = mysql_query($qData) or die(mysql_error()); if(mysql_num_rows($rData) == '0') { echo "<br><center><b>Não foi possível conectar ao banco de dados. Faça login novamente.</b></center>"; } else { $aData = mysql_fetch_array($rData); } $file = $_FILES['Filedata']; $filename = $file['name']; $path = $file['tmp_name']; $new_path = "images_files/".$file['name']; move_uploaded_file($path, $new_path); echo "1"; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Diego Macêdo 6 Denunciar post Postado Junho 16, 2010 Ta exibindo algum erro? Mostra aqui se tiver. Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Junho 16, 2010 Ta exibindo algum erro? Mostra aqui se tiver. Erro não, só não grava no DB :( Se eu deixar assim: <? 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()); $file = $_FILES['Filedata']; $filename = $file['name']; $path = $file['tmp_name']; $new_path = "images_files/".$file['name']; move_uploaded_file($path, $new_path); echo "1"; ?> Ele grava a imagem no DB, mas o nome de usuário e email não... Compartilhar este post Link para o post Compartilhar em outros sites
Diego Macêdo 6 Denunciar post Postado Junho 16, 2010 No seu caso ele não está armazenando o usuário e email na sessão. Dê um echo nessas 2 variáveis e veja se exibe algum resultado. Outro erro que achei foi um sifrão dentro do SESSION 'email', eu retirei. Outra coisa, tente botar assim: $query = "INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) VALUES ('', '', '', '', '$filename', '', 'Yes', '', '{$_SESSION['Username']}', '{$_SESSION['Email_Address']}')"; Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Junho 16, 2010 No seu caso ele não está armazenando o usuário e email na sessão. Dê um echo nessas 2 variáveis e veja se exibe algum resultado. Outro erro que achei foi um sifrão dentro do SESSION 'email', eu retirei. Outra coisa, tente botar assim: $query = "INSERT INTO images (ImageID, Cid, Sid, Title, Image, Viewed, Published, TimeStamp, Username, Email_Address) VALUES ('', '', '', '', '$filename', '', 'Yes', '', '{$_SESSION['Username']}', '{$_SESSION['Email_Address']}')"; Não mudou nada :S Compartilhar este post Link para o post Compartilhar em outros sites
Diego Macêdo 6 Denunciar post Postado Junho 16, 2010 Você deu echo nas variáveis da sessão para ver o que estava sendo exibido? Ele não está cadastrando nada no usuario e email, porque possivelmente eles não estão armazenados na sessão, então o problema não está necessariamente aí, mas sim na página que abre a sessão e faz esse armazenamento. Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Junho 16, 2010 Não deixarão de ser duas consultas, executadas em apenas um mysql_query(); Aprenda a separar comandos por funcionalidade. O que você está fazendo, é uma alteração ou uma busca?? Se você responder 'os dois', deverá efetuar duas consultas ao banco, uma alterando e outra buscando. Comandos 'alteradores': create, drop, insert, delete, update, alter... Comandos 'buscadores': select, show, describe, explain... Comandos alteradores, retornam o número de linhas afetadas. Comandos buscadores, retornam tabelas, dados que podem ser manipulados. Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Junho 16, 2010 Você deu echo nas variáveis da sessão para ver o que estava sendo exibido? Ele não está cadastrando nada no usuario e email, porque possivelmente eles não estão armazenados na sessão, então o problema não está necessariamente aí, mas sim na página que abre a sessão e faz esse armazenamento. Não dei echo, mas acredito que não seja esse o problema. Essa é a página onde o usuário seleciona a imagem: <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> E essa é a que armazena a imagem e grava no DB: <? include"config.php"; $file = $_FILES['Filedata']; $filename = $file['name']; $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()); $path = $file['tmp_name']; $new_path = "images_files/".$file['name']; move_uploaded_file($path, $new_path); echo "1"; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Diego Macêdo 6 Denunciar post Postado Junho 16, 2010 Se você está dando INSERT e os valores dos campos de usuario e email estão sendo cadastrados como vazio, é porque as variáveis da sessão estão como nula, ou seja, não tem nada armazenado. Eu ainda creio que o problema seja na sessão, mas só descobriremos quando você dar o echo e ver se está exibindo o resultado. Tente botar isso antes de efetuar as consultas: echo "Usuário: {$_SESSION['Username']} <br />"; echo "E-mail: {$_SESSION['Email_Address']} <br />"; ... continuação do código de INSERT.. Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Junho 16, 2010 Aeee, exibiu direitinho. Agora é só descobrir pq não grava :( Compartilhar este post Link para o post Compartilhar em outros sites
Diego Macêdo 6 Denunciar post Postado Junho 16, 2010 Tenta armazenar os valores em outra variavel tipo $usuario e $email, substitua lá no comando SQL do INSERT e veja se grava normalmente assim. Compartilhar este post Link para o post Compartilhar em outros sites
Will Up 0 Denunciar post Postado Junho 16, 2010 Tenta armazenar os valores em outra variavel tipo $usuario e $email, substitua lá no comando SQL do INSERT e veja se grava normalmente assim. Deu na mesma. Tipo, quando eu acesso o arquivo upload.php, ele grava o nome do usuário e email no DB. Estranho... quando a imagem não grava, eles gravam... Não deixarão de ser duas consultas, executadas em apenas um mysql_query(); Aprenda a separar comandos por funcionalidade. O que você está fazendo, é uma alteração ou uma busca?? Se você responder 'os dois', deverá efetuar duas consultas ao banco, uma alterando e outra buscando. Comandos 'alteradores': create, drop, insert, delete, update, alter... Comandos 'buscadores': select, show, describe, explain... Comandos alteradores, retornam o número de linhas afetadas. Comandos buscadores, retornam tabelas, dados que podem ser manipulados. Sim, estou fazendo os dois. Sabe como resolvo? Abs. Compartilhar este post Link para o post Compartilhar em outros sites