Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
$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!
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