Ir para conteúdo

POWERED BY:

Arquivado

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

jango

sistema de busca interna com mais de 1 tabela

Recommended Posts

sera que alguem poderia me ajudar a fazer um sistema de busca interna com mais de 1 tabela?

 

exemplo:

eu tenho 2 tabelas distintas e eu tenho que buscar a que foi digitado nas duas, eu ja montei o select, mas estou me embaralhando na hora de mostrar o resultado pq quando eu jogo no while ele repete, por exemplo, se ele acha 2 registros na tabela A e 4 na tabela B ele repete os registros da tabela A 4x.. alguem tem uma solução pra isso?

 

agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mostre como você está fazendo.

 

uma saída, seria usar um UNION entre os 2 SELECT, e então com apenas um loop, exibir os resultados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é mais ou menos assim:


<?php

include "config.php";

$busca = $_GET['consulta'];
// Usa a função mysql_real_escape_string() para evitar erros no MySQL
$busca = mysql_real_escape_string($busca);

// ============================================

// Monta outra consulta MySQL para a busca
$sql = "SELECT  a.*, p.* FROM tb_arquivos a, tb_projetos p WHERE a.titulo_arquivo LIKE '%".$busca."%' OR p.nome LIKE '%".$busca."%'";
// Executa a consulta
$query = mysql_query($sql);

// ============================================

// Começa a exibição dos resultados
echo "<ul>";
while ($resultado = mysql_fetch_assoc($query)) {
$titulo = $resultado['titulo_arquivo'];
$nome = $resultado['nome'];
$link = 'consulta.php?id=' . $resultado['id_arquivos'];
$link2 = 'consulta.php?id=' . $resultado['id_projetos'];
echo "<li>";
echo '<a href="'.$link.'" title="'.$titulo.'">'.$titulo.'</a><br />';

echo '<a href="'.$link2.'" title="'.$nome.'">'.$nome.'</a><br />';

echo "</li>";
}
echo "</ul>";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer dois SELECT, um para cada tabela e então dar um while em cada um deles exibindo dados encontrados em cada tabela. Ex:

 

Foram encontrados 33 resultados:

 

5 resultados em Arquivos:

 

- Resultado 1

- Resultado 2

- Resultado...

 

 

28 resultados em Projetos:

 

- Resultado 1

Etc...

 

 

 

Mas se não achar bom dessa forma creio que a melhor forma é a com UNION, como William citou.

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

sera que alguem poderia me ajudar a fazer um sistema de busca interna com mais de 1 tabela?

 

exemplo:

eu tenho 2 tabelas distintas e eu tenho que buscar a que foi digitado nas duas, eu ja montei o select, mas estou me embaralhando na hora de mostrar o resultado pq quando eu jogo no while ele repete, por exemplo, se ele acha 2 registros na tabela A e 4 na tabela B ele repete os registros da tabela A 4x.. alguem tem uma solução pra isso?

 

agradeço a ajuda.

 

Creio que a melhor solução é você fazer um JOIN.

 

http://brasiltutoriais.com.br/relacionamento-de-tabelas-no-mysql/ <- foi nesse link que eu aprendi a fazer INNER JOIN... rsrs

 

Boa sorte!! Se precisar de outros exemplos é só falar!

 

--

 

Te ajudei? dá uma ajudinha lá tbm... fiz um site e coloquei no ar essa semana... queria a opinião de algumas pessoas...

http://www.quizme.com.br/lucasmoreira <- endereço do meu perfil

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.