alvarogtc 1 Denunciar post Postado Janeiro 8, 2011 Pessoal gostaria de uma ajuda aqui, eu tenho: tabela -> tabnoticias Noticia_Id Noticia_Titulo Noticia_Descricao Noticia_Data tabela -> tabeventos Evento_Id Evento_Nome Evento_Local Evento_Data tabela -> tabentrevistas Entrevista_Id Entrevista_Titulo Entrevista_Descricao Entrevista_Data Oque quero é fazer uma busca por uma palavra chave que busque em Noticia_Nome, Noticia_Descricao - Evento_Nome, Evento_Local - Entrevista_Titulo, Entrevista_Descricao e Ordene pela Data No caso eu preciso do ID para poder gerar os links Ideias que encontrei na net mas nao fui capaz de fazer funcionar.. entre 2 tabelas <?php // tentei formar uma query nesse sentido e não consegui. $sql ="Select * From tabnoticias UNION Select * From tabeventos"; //fiz assim mas sai um monte de resultado repetido $Sql09= "SELECT * FROM tabnoticias, tabeventos, tabentrevistas WHERE tabnoticias.Noticia_Nome LIKE '%$palavra%'OR tabeventos.Evento_Nome LIKE '%palavra%' OR tabentrevistas.Entrevista_Nome LIKE '%$palavra%' ORDER BY tabnoticias.Noticia_Data, tabeventos.Evento_Data, tabentrevistas.Entrevista_Data DESC"; //fiz assim tambem mas repete milhoes de resultados $Sql09 = "SELECT n.Noticia_Id, n.Noticia_Nome, n.Noticia_Descricao, n.Noticia_Data, e.Evento_Id, e.Evento_Nome, e.Evento_Local, e.Evento_Data, t.Entrevista_Id, t.Entrevista_Nome, t.Entrevista_Descricao, t.Entrevista_Data FROM tabnoticias AS n, tabeventos AS e, tabentrevistas AS t WHERE n.Noticia_Nome LIKE '%$palavra%' OR n.Noticia_Descricao LIKE '%$palavra%' OR e.Evento_Nome LIKE '%$palavra%' OR e.Evento_Local LIKE '%$palavra%' OR t.Entrevista_Nome LIKE '%$palavra%' OR t.Entrevista_Descricao LIKE '%$palavra%' ORDER BY n.Noticia_Data, e.Evento_Data, t.Entrevista_Data"; Tudo que fiz ai acima fui buscando na net e testando. Alguem tem alguma dica, ideia, ou ponto de partida pra me passar??? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Janeiro 8, 2011 As tabelas se relacionam ? Se sim , pesquise por JOIN Se não pesquise por UNION Compartilhar este post Link para o post Compartilhar em outros sites
Daniel LM Costa 2 Denunciar post Postado Janeiro 8, 2011 O erro no seu union ocorreu pois, o nome e o tipo das colunas devem ser iguais. Esse cara retorna o ID e um campo "Tipo" que indica se é uma entrevista, noticia, ou evento select 'Noticia' as Tipo , Noticia_Id as ID from tabnoticia where Noticia_Titulo like '%$palavra%' or Noticia_Descricao like '%$palavra%' union all select 'Evento' as Tipo , Evento_Id as ID from tabevento where Evento_Nome like '%$palavra%' or Evento_Local like '%$palavra%' union all select 'Entrevista' as Tipo , Entrevista_Id as ID from tabentervista where Entrevista_Titulo like '%$palavra%' or Entrevista_Descricao like '%$palavra%' Compartilhar este post Link para o post Compartilhar em outros sites
alvarogtc 1 Denunciar post Postado Janeiro 8, 2011 Consegui aqui, vlw pela dica!!!! so para ficar claro caso alguem tenha o mesmo problema, segui o exemplo acima define Noticia_Titulo, Evento_Titulo, Entrevista_Titulo as TITULO e ficou assim de maneira provisoria echo TIPO (exibe se é noticia, evento ou Entrevista) echo ID (o id de cada resultado) echo TITULO (exibe o titulo se noticia, evento ou entrevista) Na minha conclusao, é que como as tabelas tem colunas diferentes eu tinha que digamos simular um campo que fosse comum para ambas as 3 no caso foi TIPO, ID e TITULO.. Obrigada. Compartilhar este post Link para o post Compartilhar em outros sites