Ir para conteúdo

POWERED BY:

Arquivado

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

weslleysolo

Consulta em varias tabelas mysql

Recommended Posts

Boa tarde, amigos.

 

Minha dúvida é a seguinte:

 

Tenho 4 tabelas e quero realizar uma buscar por alguma palavra chave em alguns campos dessas tabelas....o problema é fazer isso sem gambiarra e como tratar o resultado...tentei fazer da seguinte maneira:

 

$slq_dados = mysql_query("SELECT 
agenda.titulo as titulo_agenda, agenda.texto as texto_agenda, 
arquivos.titulo as titulo_arquivos,
publicacoes.titulo as titulo_publicacoes, publicacoes.texto as texto_publicacoes,
paginas.titulo as titulo_paginas, paginas.corpo as corpo_pagina
FROM agenda 
INNER JOIN arquivos ON arquivos.titulo LIKE '%".$palavra."%' 
INNER JOIN publicacoes ON publicacoes.texto LIKE '%".$palavra."%' 
INNER JOIN paginas ON paginas.corpo LIKE '%".$palavra."%'
WHERE agenda.titulo LIKE '%".$palavra."%' ")or die ("Erro: ".mysql_error());

while($resultado = mysql_fetch_assoc($slq_dados))
{
	???
}

Como podem ver tenho as tabelas AGENDA, ARQUIVOS, PUBLICACOES e PAGINAS. Preciso agora ajeitar o script para que busque corretamente (da forma que esta só acha o que está na tabela AGENDA, mesmo tendo a mesma palavra nas outras) a palavra chave e depois exibir o resultado (alguma dica melhor?).

 

Agradeço que me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é exatamente o seu objetivo com isso? (não to falando da relação entre as tabelas)

talvez haja uma forma melhor de fazer isso. Porque esse LIKE com 3 INNER JOIN vai acabar com o seu desenpenho de busca. muiiiiiitooo lento

Compartilhar este post


Link para o post
Compartilhar em outros sites

$slq_dados = mysql_query("SELECT 
agenda.titulo as titulo_agenda, agenda.texto as texto_agenda, 
arquivos.titulo as titulo_arquivos,
publicacoes.titulo as titulo_publicacoes, publicacoes.texto as texto_publicacoes,
paginas.titulo as titulo_paginas, paginas.corpo as corpo_pagina
FROM agenda 
INNER JOIN arquivos ON arquivos.titulo LIKE '%".$palavra."%' OR
INNER JOIN publicacoes ON publicacoes.texto LIKE '%".$palavra."%' OR
INNER JOIN paginas ON paginas.corpo LIKE '%".$palavra."%'
WHERE agenda.titulo LIKE '%".$palavra."%' ");

Faltou o OR para buscar em todas as tabs, agora precisa ver se esse OR que eu coloquei está no lugar certo. Debug nele!

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.