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$cadenaBusqueda=$_POST['cadenaBusqueda'];
if($_GET['avanzado']=="no") {
$sql="SELECT * , MATCH(titulo, texto) AGAINST ('".$cadenaBusqueda."') as Score FROM tabla WHERE MATCH(titulo, texto) AGAINST ('".$cadenaBusqueda."') ORDER BY Score DESC";
} else {
$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";
}
$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>";
if($bandera==0) { $colorFondo="#ECF2FF"; $bandera=1; } else { $colorFondo="#D3E8FF"; $bandera=0; }
$cadBus=explode(" ",$cadenaBusqueda);
$asieio=join("|",$cadBus);
$func = preg_match("/(".$asieio."){1}.+/is",$row['texto'],$matches); $cuantosarrayen=count($cadBus);
$trozo=$matches[0];
for($i=0; $i<$cuantosarrayen; $i++) {
$trozo=str_ireplace($cadBus[$i],"<b><font color=black>".$cadBus[$i]."</font></b>",$trozo); }
$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>";
}