jango 0 Denunciar post Postado Outubro 5, 2010 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
William Bruno 1501 Denunciar post Postado Outubro 5, 2010 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
jango 0 Denunciar post Postado Outubro 6, 2010 é 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
Maykonn 6 Denunciar post Postado Outubro 6, 2010 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
jango 0 Denunciar post Postado Outubro 6, 2010 ahh mto bom, vou testar as duas maneiras. obrigado pelas dicas ^_^ Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Outubro 7, 2010 O ideal mesmo seria perguntar para a seção de bancos de dados do fórum, mas eu iria de UNION como o William disse, ou então com sub-querys / simples WHERE`s. Até mais. Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Moreira 0 Denunciar post Postado Outubro 8, 2010 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