luizmtz 0 Denunciar post Postado Setembro 3, 2010 Bem pessoal tenho 3 tabelas sendo que: 1 tabela alunos 2 Tabela quimica 3 Tabela ingles Funcionamento do sistema: O script pega o nome de usuario usado no login e faz uma busca nas tabelas quimica e ingles, exibindo seus resultados. -- O script funcionou corretamente quando eu fazia a busca somente em uma tabela. <?php $host = 'localhost'; $user = 'siteshbe_teste'; $pass = 'xxxx'; $con = mysql_connect($host,$user,$pass); $db = 'siteshbe_teste'; mysql_select_db($db,$con) or print mysql_error(); $sql = mysql_query("SELECT * FROM quimica WHERE nome LIKE '%$nome%' OR prova1 LIKE '%$nome%'OR prova2 LIKE '%$nome%'"); $count = mysql_num_rows($sql); if ($count == 0) { echo "Nenhum resultado!"; } else { if ($count == 1) { echo "1 resultado encontrado!"; } if ($count > 1) { echo "$count resultados encontrados!"; } while ($dados = mysql_fetch_array($sql)) { ?> <html> <head> <title>..: Escolinha :.. </title> </head> <body> <br> <font size="1" face="Verdana, Arial, Helvetica, sans-serif">Olá <?php echo "$dados[nome]" ?> <b></b>, Os dados encontrados são: </b></font> <br><br> Nome: <?php echo "$dados[nome]" ?> <br><br> Prova Seletiva 1 : <?php echo "$dados[prova1]";?> <br><br> Prova Seletiva 2 : <?php echo "$dados[prova2]"; } } ?> </body> </html> Porem quando vou fazer a busca em 2 tabelas ele não mostra nenhum resultado e nem aparece nenhum erro... <?php $host = 'localhost'; $user = 'siteshbe_teste'; $pass = 'xxxxxx'; $con = mysql_connect($host,$user,$pass); $db = 'siteshbe_teste'; mysql_select_db($db,$con) or print mysql_error(); $sql = mysql_query("SELECT * FROM 'quimica' WHERE 'nome' LIKE '%nome%'OR prova1 LIKE '%$nome%'OR prova2 LIKE '%$nome%' UNION SELECT * FROM 'ingles' WHERE 'nome' LIKE '%nome%'OR ingles1 LIKE '%$nome%'OR ingles2 LIKE '%$nome%' "); ?> ?> <html> <head> <title>..: Escola :.. </title> </head> <body> <br> <font size="1" face="Verdana, Arial, Helvetica, sans-serif">Olá <?php echo "$dados[nome]" ?> <b></b>, Os dados encontrados são: </b></font> <br><br> Nome: <?php echo "$dados[nome]" ?> <br><br> Quimica: <br><br> Prova Seletiva 1 : <?php echo "$dados[prova1]";?> <br><br> Prova Seletiva 2 : <?php echo "$dados[prova2]"; ?> <br><br> Ingles: <br><br> Prova Seletiva 1 : <?php echo "$dados[ingles1]";?> <br><br> Prova Seletiva 2 : <?php echo "$dados[ingles2]"; ?> </body> </html> Alguma ideia pessoal? Compartilhar este post Link para o post Compartilhar em outros sites
Eliseu M. 2 Denunciar post Postado Setembro 3, 2010 Para fazer um SELECT em duas ou mais tabelas, a sintaxe deve ser a seguinte (exemplo com duas): SELECT * FROM [tabela1],[tabela2] WHERE [tabela1].[campo]=[tabela2].[campo]Caso tenha problemas em imprimir dois campos que tenham o mesmo porém sejam de colunas diferentes, utilize a sintaxe AS (alias) que dá um pseudônimo para o campo, exemplo: SELECT [tabela1].nome AS nome1, [tabela2].nome AS nome2 FROM [tabela1],[tabela2]Daí, para imprimir, você pode usar os títulos nome1 e nome2 =D De onde você pegou a variável $nome para imprimir os resultados no segundo código? Outra coisa: recomendo a utilização de um programa para testar queries, como o HeidiSQL. Qualquer dúvida, PM. Compartilhar este post Link para o post Compartilhar em outros sites
luizmtz 0 Denunciar post Postado Setembro 3, 2010 Para fazer um SELECT em duas ou mais tabelas, a sintaxe deve ser a seguinte (exemplo com duas): SELECT * FROM [tabela1],[tabela2] WHERE [tabela1].[campo]=[tabela2].[campo]Caso tenha problemas em imprimir dois campos que tenham o mesmo porém sejam de colunas diferentes, utilize a sintaxe AS (alias) que dá um pseudônimo para o campo, exemplo: SELECT [tabela1].nome AS nome1, [tabela2].nome AS nome2 FROM [tabela1],[tabela2]Daí, para imprimir, você pode usar os títulos nome1 e nome2 =D De onde você pegou a variável $nome para imprimir os resultados no segundo código? Outra coisa: recomendo a utilização de um programa para testar queries, como o HeidiSQL. Qualquer dúvida, PM. A variável $nome vem do login. Tipo quando a pessoa loga pega o nome dela e faz uma busca nas duas tabelas... E cara, mesmo assim ainda nao funcionou... Compartilhar este post Link para o post Compartilhar em outros sites
IcaroMax 0 Denunciar post Postado Julho 7, 2014 eu tambem tentei e nao consegui Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Julho 7, 2014 Tenta tirar as aspas simples do nome da tabela... $sql = mysql_query("SELECT * FROM 'quimica' WHERE 'nome' LIKE '%nome%'OR prova1 LIKE '%$nome%'OR prova2 LIKE '%$nome%' UNION SELECT * FROM 'ingles' WHERE 'nome' LIKE '%nome%'OR ingles1 LIKE '%$nome%'OR ingles2 LIKE '%$nome%' "); SELECT * FROM 'quimica' para SELECT * FROM quimica, do mesmo modo que foi feito na primeira query, o mesmo vale para a tabela ingles ('ingles') Compartilhar este post Link para o post Compartilhar em outros sites