En ese caso, para no complicar las cosas, podrías probar así:
Código PHP:
<?php
include('bdconex.php'); // Este archivo contiene los datos de conexión a la BD
// creamos una función que resaltará todas las palabras que coincidan con la búsqueda realizada
if(!function_exists('str_ireplace')) {
function str_ireplace($search,$replace,$subject) {
$search = preg_quote($search, "/");
return preg_replace("/".$search."/i", $replace, $subject); } }
function resaltar($palabra, $texto) {
return str_ireplace($palabra,'<strong>'.$palabra.'</strong>',$texto);
}
// iniciamos el proceso de búsqueda
if (isset($_POST["buscar"])) {
if($_POST['palabra'] == '') {
echo "No has ingresado ninguna palabra a buscar <a href='javascript:history.back()'>Regresar</a>";
}else {
$tabla = "noticias";
$campo = "titulo";
// quitamos cualquier código malicioso de $_POST['palabra']
$palabra = stripslashes($_POST['palabra']);
$palabra = strip_tags($palabra);
// hacemos la consulta a la base de datos según la palabra encontrada
$query = mysql_query("SELECT * FROM $tabla WHERE $campo LIKE '%".$palabra."%'");
$mostrar = mysql_num_rows($query); // obtenemos la cantidad de coincidencias encontradas
if(mysql_num_rows($query) == "0") {
echo "No hay coincidencias encontradas para <strong>".$palabra."</strong> <a href='javascript:history.back()'>Regresar</a>";
}else {
?>
Se han encontrado <strong><?=$mostrar?></strong> coincidencias para <strong><?=$palabra?></strong>
<?php
while($datos = mysql_fetch_array($query)) {
$str = $datos["titulo"];
//$pal = array($palabra);
?>
<ul>
<li><?=resaltar($palabra, $str)?></li>
</ul>
<?php
}
}
}
}else {
?>
<form action="buscar.php" method="post">
<input name="palabra" type="text" />
<input name="buscar" type="submit" value="Enviar" />
</form>
<?php
}
?>
La desventaja es que no se conserva el formato original de la cadena. Igual, se podría modificar la otra función para que haga todos los reemplazos manteniendo la palabra en el formato original, sólo que ahora no tengo tiempo como para ver cómo lograrlo ;)