Hola Josemi, a continuación te pego todo el código para que puedas evuluarlo mejor, gracias por tu interes.
Código PHP:
// obtener el array de un string .. Usamos el espacio como separador o identenficador de palabras.
$array_palabras=explode(" ",$_POST['BUSCADOR']);
//contar el total de "palabras" q tiene el string (el total de elementos del array)
$total_palabras=count($array_palabras)-1;
// se recorre el array generado por el explode ..
for ($indice=0; $indice<=$total_palabras; $indice++){
$secuencia_buscar="Claves LIKE '%".$array_palabras[$indice]."%'";
// se mira si es la ultima palabra a poner . en tal caso no se pone el OR ..
if ($indice < $total_palabras){
$condicion=" OR ";
} else {
$condicion="";
}
// se concatena (he de ahí el .= la secuencia anterior con el comando de la condicion ..
$secuencia_total .= $secuencia_buscar.$condicion;
}
# definimos las variables iniciales de la paginación
if (!isset($pg))
$pg = 0; // $pg es la pagina actual
$cantidad=4; // cantidad de resultados por página
$inicial = $pg * $cantidad;
// se concatena la secuencias de campo LIKE '%palabra%' AND .. con el SQL
// si hace falta mas parámetros o condiciones .. añadir al final ...
$sql = "SELECT * FROM $tabla WHERE ".$secuencia_total." ORDER BY Titulo LIMIT $inicial,$cantidad";
# establecemos el criterio de seleccion
$resultado = mysql_query($sql, $conexion) or die ("Error en la consulta:\n<br><b>$sql</b><br>\nMySQL dice: ".mysql_error());
# contamos todos los registros de la tabla
$contar = "SELECT * FROM $tabla WHERE ".$secuencia_total." ORDER BY Titulo";
$contarok= mysql_query($contar, $conexion);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);
# CREAMOS UNA CABEZERA DE UNA TABLA (codigo HTML)
echo "<table width='90%'cellpadding='0' cellspacing='0' align=center bgcolor='#EFEFEF' border=0>";
# establecemos un bucle que recoge en un array
# cada una de las LINEAS DEL RESULTADO DE LA CONSULTA
# utilizamos en esta ocasión <<myslq_fetch_array>>
# recuerda que esta ultima función devuelve un array escalar
# y otro asociativo con los resultados
while ($encontrados = mysql_fetch_array($resultado)){
echo "<tr><td height='20'> </td></tr>";
echo "<tr><td height='20' valign='middle' bgcolor='#003366'> <font face='arial' size='1'><strong><a href='".$encontrados['Url']."'>".$encontrados['Titulo']."</a></strong></font></td></tr>";
echo "<tr><td></td></tr>";
echo "<tr><td><font face='arial' size='1'><strong>".$encontrados['Descripcion'].".</strong></font></td></tr>";
echo "<tr><td><br></td></tr>";
}
echo "</table>";
# filtramos mediante un if (){...}else{... que no haya menos de 11 registros para no hacer la paginación
if ($pages < 1){
echo "";
}else{
# creando los enlaces de paginación
echo "<br><div align='center'><font face='Tahoma' size='1' color='#003366'><strong>Página de resultados</strong></font></div><div align='center'>";
if ($pg <> 0)
{
$url = $pg - 1;
echo "<a href='".$_SERVER[PHP_SELF]."?pg=".$url."'><font face='Arial' size='1' color='#FF0000'><strong>«Anterior</strong></font></a> ";
}
else {
echo "";
}
for ($i = 0; $i<($pages + 1); $i++) {
if ($i == $pg) {
echo "<font face='Tahoma' size=1 color='#003366'><strong>".($i+1)." </strong></font>";
}
else {
echo "<a href='".$_SERVER[PHP_SELF]."?pg=".$i."'><font face='Arial' size='1' color='#FF0000'><strong>".($i+1)."</strong></font></a> ";
}
}
if ($pg < $pages) {
$url = $pg + 1;
echo "<a href='".$_SERVER[PHP_SELF]."?pg=".$url."'><font face='Arial' size='1' color='#FF0000'><strong>Siguiente»</strong></font></a>";
}
else {
echo " ";
}
echo "</div>";
}
# comprobamos que no nos ha devuelto ningun resultado
if($vacio=mysql_num_rows($contarok)==0){
echo "<br><br><font face='arial' size='1'><strong>No se han encontrado coincidencias con la cadena <font color='#FF0000'>".$BUSCADOR."</font>.</strong></font>";
}
# cerramos la conexión
mysql_close();
?>
Un saludo.