Ir para conteúdo

POWERED BY:

Arquivado

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

luizmtz

Busca em 2 tabelas PHP e MYSQL

Recommended Posts

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

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

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

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

×

Informação importante

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