Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/03/2010, 10:12
Avatar de CHuLoSoY
CHuLoSoY
 
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 23 años, 1 mes
Puntos: 29
Respuesta: Buscador que no funciona

Lo mismo me preguntaba yo. Las primeras líneas no tienen sentido.
TE adjunto parte del código de un buscador que hice hace un par de semanas. Incluso marca las palabras buscadas y muestra un trozo de texto a partir de las palabras buscadas.
Pruébalo:
Código PHP:
Ver original
  1. $cadenaBusqueda=$_POST['cadenaBusqueda'];
  2.  
  3.         $conexion=mysql_connect($dbserver,$dbuser,$dbpass);
  4.         mysql_select_db($db,$conexion);
  5.     if($_GET['avanzado']=="no") {
  6.         $sql="SELECT * , MATCH(titulo, texto) AGAINST ('".$cadenaBusqueda."') as Score FROM tabla WHERE MATCH(titulo, texto) AGAINST ('".$cadenaBusqueda."') ORDER BY Score DESC";
  7.     } else {
  8.         $sql="SELECT * , MATCH(titulo, texto) AGAINST ('$cadenaBusqueda') as Score FROM tabla WHERE etiqueta LIKE '%@-".$_GET['etiqueta']."-@%' AND MATCH(titulo, texto) AGAINST ('".$cadenaBusqueda."') ORDER BY Score DESC";
  9.     }
  10.         $result=mysql_query($sql,$conexion) or die ("Error! " . mysql_error());
  11. $cuantosMsgForo=mysql_num_rows($result);
  12. $cuantosTtoales=mysql_num_rows($result);
  13.  
  14. $contenidoAMeter="<tr><td width=100% colspan=2 style='font-weight:bold;background-color:#565656;color:white;-moz-border-radius:8px 8px 0px 0px;'>".$cuantosTtoales." coincidencias encontradas</td></tr>";
  15.  
  16.         while($row=mysql_fetch_array($result)) {
  17.  
  18.             if($bandera==0) { $colorFondo="#ECF2FF"; $bandera=1; } else { $colorFondo="#D3E8FF"; $bandera=0; }
  19.  
  20.             $cadBus=explode(" ",$cadenaBusqueda);
  21.  
  22.         $asieio=join("|",$cadBus);
  23.  
  24.                  $func = preg_match("/(".$asieio."){1}.+/is",$row['texto'],$matches);
  25.             $cuantosarrayen=count($cadBus);
  26.  
  27.             $trozo=$matches[0];
  28.             $trozo=str_replace("'","&apos;",$trozo);
  29.             $trozo=str_replace('"',"&quot;",$trozo);
  30.             $trozo=str_replace('<br>'," ",$trozo);
  31.  
  32.             for($i=0; $i<$cuantosarrayen; $i++) {
  33.                 $trozo=str_ireplace($cadBus[$i],"<b><font color=black>".$cadBus[$i]."</font></b>",$trozo);
  34.             }
  35.  
  36.             $trozo=str_replace('['," <!--",$trozo);
  37.             $trozo=str_replace(' ]',"-->",$trozo);
  38.             $trozo=str_replace('\]',"-->",$trozo);
  39.             $trozo=substr($trozo,0,450);
  40.  
  41.  
  42.             $contenidoAMeter.="<tr style=background-color:".$colorFondo.";><td width=100%><a href='leer.php?id=".$row['id']."&marcar=".$cadenaBusqueda."'><strong>".$row['titulo']."</strong></a></td></tr><tr style=background-color:".$colorFondo.";><td width=100% style='border-color:#565656;border-width:0px;border-bottom-width:0px;border-style:solid;color:666666;'>...".$trozo."...</td></tr>";
  43.  
  44.         }
  45.         mysql_free_result($result);
  46.         mysql_close($conexion);
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.