Paginación de registros con PHP y MySQL (I)

Este es un tema al que todos nos hemos enfrentado y bien se ha solucionado implementando nosotros mismos lo necesario para hacer que funcione correctamente o se ha reutilizado código.

En este caso os propongo una clase de PHPClasses que he descubierto y que es super sencilla de utilizar, se trata de la clase Simple Pagination y que podéis descargar de PHPClasses siguiendo el enlace que os he puesto.

Veamos su uso con un ejemplo:

<?
include_once("pagination.class.php");
$pag = new pagination();
$cant = 5;
$SQL = "SELECT * FROM productos";
$pag->createPaging($SQL,$cant);
echo '<table width=\"100%\">';
echo '<tr><td>Producto</td><td>Precio</td></tr>';
while($row=mysql_fetch_array($pag->resultpage)) {
   echo '<tr><td>'.$row['nombre'].'</td><td>'.$row['precio'].'</td></tr>';
}
echo '</table>';
echo '<table width=\"100%\">';
echo '<tr><td>';
$pag->displayPaging();
echo '</td></tr>';
echo '</table>';
?>

Como se puede ver lo primero es incluir la clase, a continuación creamos un objeto de dicha clase.

Definimos una variable cant para indicar la cantidad de registros que queremos mostrar por página y otra variable SQL con la consulta.

A continuación con estos dos parámetros creamos la paginación y mostramos los registros que están en la propiedad resultpage del objeto.

Finalmente tenemos que poner los enlaces típicos de primera página, anterior, siguiente, última página y los números de las distintas páginas.

Como habréis visto es muy sencillo y rápido y nos olvidamos de saber en qué pagina se está, de mostrar los enlaces adecuadamente, y pasar parámetros y demás.

Espero que os sea útil.

En este otro artículo hago una modificación de la clase para corregir un error que hay en el caso de pasar parámetros en la URL

6 comentarios en «Paginación de registros con PHP y MySQL (I)»

  1. Hola tengo una duda como puedo transferir una variable que esta en la Url y cuando le coloco siguiente se pierde ese datos, te agradeceria tu ayuda, me funciona de lugo agradecido

  2. Buenas Omegave, con el ejemplo no se puede pero he modificado la clase para que puedas, como verás he declarado una variable que se llama showpages que he puesto por defecto a 5, pon el número de páginas que quieres mostrar de una vez y a funcionar. Puedes descargar el archivo de aquí: clase pagination modificada

  3. Buenas excelente el ejemplo amigo, pero mi duda ahora es que la paginación muestra demasiadas paginas ala hora de tener muchos registros como hago para delimitar la cantidad de paginas a mostrar en la paginación ejemplo:

    1|2|3|4|5|10 siguiente >> ultimo >>

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.