Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/12/2011, 10:48
Avatar de afrodriguez70
afrodriguez70
 
Fecha de Ingreso: octubre-2011
Ubicación: Tulua-Colombia
Mensajes: 44
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Paginador de resultados limitado

Mirate este ejemplo!!

Código PHP:
Ver original
  1. <?
  2.  
  3. // Registros a mostrar en cada página
  4. $regVistos = 10;
  5.  
  6. // Consulta que devuelve todos los registros
  7. $lista0 = mysql_query(" SELECT * FROM registros");
  8.  
  9. // Se cuentan los registros devueltos por la consulta SQL $lista0
  10. $totalSql = mysql_num_rows($lista0);
  11.  
  12. // Páginas que van a aparecer, redondeando los decimales siempre hacia arriba
  13. $pagTotal = ceil($totalSql/$regVistos);
  14.  
  15. // Se definen la página actual (desde el parámetro 'pag' de la URL) y las páginas anterior y siguiente
  16. if (!isset($_GET['pag'])) {$pagActual=1;} else {$pagActual=$_GET['pag'];}
  17. $pagAnterior = $pagActual-1;
  18. $pagSiguiente = $pagActual+1;
  19.  
  20. // Consulta SQL con la que se sacará el listado de registros
  21. $lista1 = mysql_query(" SELECT * FROM registros ORDER BY campo DESC LIMIT ".(($pagActual-1)*$regVistos).",".$regVistos."");
  22. // Bucle para generar el listado de registros
  23. while($fila = mysql_fetch_assoc($lista1)) {
  24.  // Aquí irá el código PHP que escriba los registros
  25. }
  26.  
  27. // Se inicia el listado de páginas
  28. echo '<ul>';
  29.  
  30. // Si la página actual no es la primera, se muestra el enlace a la página anterior
  31. if ($pagAnterior>0) {echo '<li class="anterior"><a href="lista.php?pag='.$pagAnterior.'"><span class="oculto">Página </span>Anterior</a></li>';}
  32.  
  33. // Se saca el listado de páginas mediante un bucle
  34. $pgIntervalo = 3; // Páginas que aparecen antes y después de la actual
  35. $pgMaximo = ($pgIntervalo*2)+1; // Máximo de páginas en el listado
  36. $pg=$pagActual-$pgIntervalo;$i=0;
  37. while ($i<$pgMaximo) {
  38.  if ($pg==$pagActual) {$strong=array('<strong>','</strong>');} else {$strong=array('','');}
  39.  if ($pg>0 and $pg<=$pagTotal) {
  40.   echo '<li>'.$strong[0].'<a href="lista.php?p='.$_GET['p'].'&amp;pag='.$pg.'"><span class="oculto">Página </span>'.$pg.'</a>'.$strong[1].'</li>';
  41.   $i++;
  42.  }
  43.  if ($pg>$pagTotal) {$i=$pgMaximo;} // Si la página que se va a mostrar se pasa de la cantidad de páginas definidas en $pagTotal se para la generación de elementos de lista
  44.  $pg++;
  45. }
  46.  
  47. // Si la página actual no es la última, se muestra el enlace a la página siguiente
  48. if ($pagSiguiente<=$pagTotal) {echo '<li class="siguiente"><a href="lista.php?p='.$_GET['p'].'&amp;pag='.$pagSiguiente.'"><span class="oculto">Página </span>Siguiente</a></li>';}
  49.  
  50. // Se finaliza el listado de páginas
  51. echo '</ul>';
  52. ?>
__________________
Si el hombre no ha descubierto nada por lo que morir, no es digno de vivir. <<Martin Luther King>>