Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/07/2003, 14:45
Zertiko
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
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"
                   
$contarokmysql_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'>&nbsp;</td></tr>";
                   echo 
"<tr><td height='20' valign='middle' bgcolor='#003366'>&nbsp;<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>&laquo;Anterior</strong></font></a>&nbsp;";
                  }
                  else {
                  echo 
"";
                  }
                  for (
$i 0$i<($pages 1); $i++) {
                  if (
$i == $pg) {
                  echo 
"<font face='Tahoma' size=1 color='#003366'><strong>".($i+1)."&nbsp;</strong></font>";
                  }
                  else {
                  echo 
"<a href='".$_SERVER[PHP_SELF]."?pg=".$i."'><font face='Arial' size='1' color='#FF0000'><strong>".($i+1)."</strong></font></a>&nbsp;";
                  }
                  }
                  if (
$pg $pages) {
                  
$url $pg 1;
                  echo 
"<a href='".$_SERVER[PHP_SELF]."?pg=".$url."'><font face='Arial' size='1' color='#FF0000'><strong>Siguiente&raquo;</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.