Hace ya un tiempo que hice una clase para realizar paginaciones en web mediante PHP y que voy a desempolvar para haceros llegar. esta clase, aunque sencilla, la verdad es que llevo ya un par de años usándola y me ha alegrado la vida unas cuantas veces.
Se trata de una clase en PHP llamada Paginación que permite calcular y maquetar la paginación que podemos incluir en nuestras páginas web. Únicamente tenemos que indicarle:
- offset: número de páginas desde el inicio
- nitems: número de elementos por página
- ntotal: número total de elementos
Con esto, le podemos pedir a la clase que nos cree el típico 1 2 3 4 5 6 7 8 9 10 donde cada uno de los elementos serán enlaces a la página correspondiente y la página seleccionada está como texto normal. Este comportamiento se puede cambiar si lo deseamos.
He creado unos cuántos ejemplos.
Puedes descargarte la clase aquí. Eres libre de usarla y modificarla para adaptarla a tus necesidades, siempre y cuando mantengas el nombre del autor original… 🙂
Además, tenemos distintos métodos que nos ayudarán a modificar el «comportamiento estándar» y así adaptarnos a nuestras necesidades:
- getPaginaActual: calcula cuál es la página en la que estamos a partir del offset y del número de elementos
- getPaginas: obtener el número total de páginas en base al número total de elementos y los elementos por página
- setMaxPaginas: establece el número de páginas que apareceran (por defecto, 10) es decir 1 2 3 …. 10
- setNumberPattern: cambia la forma de visualizar los números de página no seleccionados
- setNumberSelectedPattern: cambia la forma de visualizar el número de página seleccionado
- getRenderSingle: renderiza número según el desplazamiento de página que le damos y adapta el texto que le pasemos (útil para el «anterior» y «siguiente»)
La clase está completamente comentada a nivel de código, con lo que saber qué hace cada cosa resulta sencillo 😉
Parece increible, que una clase que fue posteada en 2007 pueda servirme ahora…
Es justo lo que necesito y lo mejor, no es complicada…
Gracias por el aporte.
Me alegro de que te sirva, Sergio. Yo le he dado bastante uso desde entonces.
ola, me ayudas con tu codigo..en que parte pongo el select * from table??.disculpa la molestia soy principiante en esto..gracias.saludos
Hola Ronald,
Con esta clase lo único que consigues es mostrar la paginación en función de los valores que le das. Como siempre suelo decir, esta clase «sólo entiende de números» y lo que le tienes que indicar son el offset actual, el número de elementos por página y el total de elementos que tienes.
Supongo que lo más habitual será que hagas todas las operaciones que te hacen falta con la base de datos antes de llamar a la paginación. Eso sí, recuerda utilizar LIMIT y un SELECT COUNT(*) para contar el número total de elementos en tu base de datos sin tener que recuperarlos todos.