En este post te mostraré de manera muy simple y sencilla cómo hacer una paginación de datos de MySQL usando PHP. Esto quiere decir que muestras los datos de la tabla por página, mostrando ciertos elementos por página.

Además de paginar los datos por tabla, también te enseñaré cómo crear enlaces que lleven a determinado número de página, cómo saber cuántas páginas puedes tener, etcétera.

Verás que la explicación es muy sencilla y después de esto podrás adaptar el código a tu software o tomar el ejemplo como está.

Nota: para este tutorial asumo que ya tienes las nociones básicas de PHP con MySQL, pero si no, no te preocupes, te invito a ver cómo conectar PHP con MySQL usando PDO y también te invito a ver un sistema de ventas en PHP para reafirmar tus conocimientos.

Algoritmo para paginar resultados

Primero vamos a analizar cómo es que funciona todo esto. Podemos tener una simple fórmula que nos permitirá sacar el número de páginas disponibles:

Páginas disponibles = RedondearHaciaArriba(Cantidad de datos / Datos a mostrar por página)

Estamos redondeando hacia arriba porque en ocasiones el resultado será un valor decimal, y si mostramos el resultado como tal, vamos a omitir algunos resultados porque las páginas no serán suficientes.

Ahora veamos cómo obtener esos datos. La cantidad de datos se puede obtener con un COUNT de SQL, y los datos a mostrar por página los definimos nosotros.

Para redondear hacia arriba usamos la función ceil que PHP ya ofrece. Y finalmente para obtener solo algunos valores usamos LIMIT y OFFSET de SQL igualmente.

Relacionado:  Script para respaldar una base de datos de MySQL con PHP

LIMIT nos permite limitar los resultados, y OFFSET nos permite saltar determinados resultados. Por lo tanto LIMIT siempre será igual a la cantidad de datos a mostrar por página.

Por otro lado, el OFFSET se puede calcular con:

Offset = (Página actual - 1) * Datos por página;

Necesitamos restarle 1 porque en el caso de que la página sea 0, necesitamos que el OFFSET sea 0, pero para todo lo demás, necesitamos que sea la página – 1 multiplicada por los datos.

Con este enfoque, evitamos cortar arreglos y ahorramos memoria, aunque hacemos dos consultas a la base de datos: una para obtener el conteo, y otra para obtener los datos reales.

Dicho esto, veamos el código.

La base de datos

Para ejemplificar esto, tengo una simple base de datos que a su vez tiene una tabla de productos. La estructura, creación de base de datos y algunos datos de prueba se ven así:

Por el momento no te preocupes por la estructura de la tabla, al final de todo lo que nos interesa es hacer una paginación con PHP y MySQL.

Conexión PHP a base de datos

El archivo de conexión es el siguiente:

Este archivo lo vamos a usar para traer los valores. Recuerda cambiar las credenciales de acuerdo a tu entorno.

Paginación con PHP y MySQL

Paginación con PHP y MySQL

Ahora sí veamos el código. Definimos cuántos elementos vamos a mostrar por página:

El número de página se obtendrá de la URL pero si no se proporciona se asume que es la página 1:

Ahora calculamos el limit y offset:

Obtenemos el conteo de los productos, para ello hacemos un count. Usamos as para renombrar la columna.

Calculamos cuántas páginas tenemos:

Finalmente obtenemos los productos:

Luego los mostramos en una tabla:

Finalmente creamos los enlaces para navegar entre páginas. Además de los enlaces que llevan directamente a una página, mostramos el de página siguiente y página anterior. También mostramos la página actual y cuántas páginas existen.

Poniendo todo junto

Al final el código queda así:

Si te fijas, además del código he incluido el encabezado y pie que no hacen otra cosa más que agregar el menú de navegación, cerrar etiquetas, etcétera. Esto es porque he tomado como base el proyecto de punto de venta con PHP.

Relacionado:  Primeros pasos con MySQL en la línea de comandos

Conclusión

Para terminar te dejo el código completo en GitHub. Espero que este ejemplo te haya servido para que puedas implementar tu propia paginación, o que te haya servido como base.

Si te gusta el lenguaje, te invito a ver más sobre PHP en mi blog.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 577 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

0 Comments

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: