Ir para conteúdo

POWERED BY:

Arquivado

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

lu4n

[Resolvido] buscar palavra em varias tabela

Recommended Posts

olá

bom jah procurei aqui e no google à um tempão e nada resolveu meu problema

 

é o seguinte :

 

tenho uma tabela "noticias, eventos, download"

 

fiz um sistema de busca q funfa buscando uma tabela

 

so q agora gostaria ao usuario buscar a palavra-"chave"

ele fazer a busca nessas 3 tabelas, nas seguintes colunas

 

descricao.noticias

titulo.download

descricao.eventos

 

e retornar resultado das palavras encontrada

 

 

segue o codigo

if(isset($_POST['palavra']) and ($_POST['palavra'] != "")) {
     $palavra1 = str_replace(" ", "%", formatDados($_POST['palavra'])); 

     $resultado = mysql_query("SELECT * FROM noticias WHERE descricao LIKE '%".$palavra1."%' ORDER BY data DESC");
   if(!$resultado){
     die("Não foi possivel realizar a consulta!!");
     }
  $conta = mysql_num_rows($resultado);
  $total = $conta;
     print("     Sua busca retornou <b>$total</b> resultados.<br /><br />\n");
  if(mysql_num_rows($resultado) == 0){
	  print(" ");
  } else {
  print("<h2>Download</h2> <div align=\"left\" style='border-bottom: 1px dotted #CCCCCC;   width:100%; text-align: left;'></div>");
     while($row = mysql_fetch_array($resultado)) { 
     $id = $row['id'];
     $titulo = $row['titulo'];
     print("\n");
     $palavrachave = str_replace($palavra1, "<b>".$palavra1."</b>", $titulo);
     print("<a href='noticias.php&id=$id'>".$palavrachave."</a><br />\n");
  }
     }
//
}else{
print("<div align='center'><br /><br /><br />O campo palavra est? vazio!!<br><a href='javascript:history.go(-1)'>Voltar</a></div>");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

WHERE descricao.noticias LIKE "a" OR titulo.download LIKE "a" OR descricao.eventos LIKE "a"

 

 

ficaria assim ?

 

 $resultado = mysql_query("SELECT a.*, p.* FROM s_noticias a, s_cd p WHERE descricao.a LIKE '%".$palavra1."%' OR titulo.p LIKE '%".$palavra1."%' ORDER BY data DESC");

Compartilhar este post


Link para o post
Compartilhar em outros sites

union

 

SELECT descricao FROM noticias WHERE descricao LIKE '%".$palavra1."%' UNION SELECT titulo
FROM download WHERE titulo LIKE '%".$palavra1."%' UNION SELECT descricao FROM eventos WHERE descricao LIKE '%".$palavra1."%' 

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha so

to com esse codigo aqui

 

mais ñ aparece o resultado so o total alguem pode ajudar aquii

 

<?php
if(isset($_POST['palavra']) and ($_POST['palavra'] != "")) {
     $palavra1 = str_replace(" ", "%", formatDados($_POST['palavra'])); 

     $resultado = mysql_query("SELECT id, descricao FROM noticias WHERE descricao LIKE '%".$palavra1."%' UNION SELECT id, titulo 
FROM download WHERE titulo LIKE '%".$palavra1."%' UNION SELECT id, descricao FROM eventos WHERE descricao LIKE '%".$palavra1."%' 
");
   if(!$resultado){
     die("Não foi possivel realizar a consulta!!");
     }
  $conta = mysql_num_rows($resultado);
  $total = $conta;
     print("     Sua busca retornou <b>$total</b> resultados.<br /><br />\n");
  if(mysql_num_rows($resultado) == 0){
	  print(" ");
  } else {
  print("<h2>Download</h2> <div align=\"left\" style='border-bottom: 1px dotted #CCCCCC;   width:100%; text-align: left;'></div>");
     while($row = mysql_fetch_array($resultado)) { 
     $id = $row['id'];
     $titulo = $row['titulo'];
     $palavrachave = str_replace($palavra1, "<b>".$palavra1."</b>", $titulo);
     //
   print("<a href='pagina&id=$id'>".$palavrachave."</a><br />\n");
  //
  }
     }
//
}else{
print("<div align='center'><br /><br /><br />O campo palavra est? vazio!!<br><a href='javascript:history.go(-1)'>Voltar</a></div>");
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca

 

$resultado = mysql_query("SELECT id, descricao FROM noticias WHERE descricao LIKE '%".$palavra1."%' UNION SELECT id, titulo  
FROM download WHERE titulo LIKE '%".$palavra1."%' UNION SELECT id, descricao FROM eventos WHERE descricao LIKE '%".$palavra1."%'  
"); 

 

por

 

$resultado = mysql_query("SELECT id, descricao FROM noticias WHERE descricao LIKE '%".$palavra1."%' UNION SELECT id, titulo  
FROM download WHERE titulo LIKE '%".$palavra1."%' UNION SELECT id, descricao FROM eventos WHERE descricao LIKE '%".$palavra1."%'  
") or die(mysql_error()); 

 

e v se aparece algum erro

 

outra coisa

quando você usar o union você usa somente os nomes das colunas da primeira tabela, nessa query os nomes são id e descricao

 

$row['id']; 
$row['descricao'];

 

e não

 

$row['id']; 
$row['titulo']; 

 

e pra q essa condição?

 

if(mysql_num_rows($resultado) == 0){ 
                 print(" "); 
         } else { 

 

não seria melhor assim

 

if(mysql_num_rows($resultado) != 0){                   

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca

 

$resultado = mysql_query("SELECT id, descricao FROM noticias WHERE descricao LIKE '%".$palavra1."%' UNION SELECT id, titulo  
FROM download WHERE titulo LIKE '%".$palavra1."%' UNION SELECT id, descricao FROM eventos WHERE descricao LIKE '%".$palavra1."%'  
"); 

 

por

 

$resultado = mysql_query("SELECT id, descricao FROM noticias WHERE descricao LIKE '%".$palavra1."%' UNION SELECT id, titulo  
FROM download WHERE titulo LIKE '%".$palavra1."%' UNION SELECT id, descricao FROM eventos WHERE descricao LIKE '%".$palavra1."%'  
") or die(mysql_error()); 

 

e v se aparece algum erro

 

outra coisa

quando você usar o union você usa somente os nomes das colunas da primeira tabela, nessa query os nomes são id e descricao

 

$row['id']; 
$row['descricao'];

 

e não

 

$row['id']; 
$row['titulo']; 

 

e pra q essa condição?

 

if(mysql_num_rows($resultado) == 0){ 
                 print(" "); 
         } else { 

 

não seria melhor assim

 

if(mysql_num_rows($resultado) != 0){                   

 

 

vlw aii

resolvidoo

Brigadãoo

;)

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.