¿Qué es la paginación?
¿Qué es la paginación?
La paginación es una técnica para dividir grandes conjuntos de datos en páginas más pequeñas y manejables, mejorando la experiencia del usuario y el rendimiento.
Elementos clave de esta implementación:
1. Configuración inicial
$por_pagina = isset($_GET['limit']) ? (int)$_GET['limit'] : 10;
$pagina_actual = isset($_GET['page']) ? (int)$_GET['page'] : 1;$por_pagina: Cantidad de elementos a mostrar por página (default: 10)$pagina_actual: Página que se está visualizando (default: 1)
2. Cálculo del inicio
$inicio = ($pagina_actual - 1) * $por_pagina;Calcula el offset para la consulta SQL. Por ejemplo:
Página 1:
(1-1)*10 = 0(primeros 10 registros)Página 2:
(2-1)*10 = 10(siguientes 10 registros)
3. Consulta paginada
SELECT * FROM solicitudes ORDER BY fecha_registro DESC LIMIT :inicio, :por_paginaUsa LIMIT para obtener solo los registros de la página actual.
4. Cálculo del total de páginas
$total_paginas = ceil($total_solicitudes / $por_pagina);Calcula cuántas páginas se necesitan para mostrar todos los registros.
5. Generación del paginador HTML
La función generarPaginador() crea:
Botón anterior: Deshabilitado si está en la primera página
Números de página: Muestra 5 páginas alrededor de la actual
Botón siguiente: Deshabilitado si está en la última página
6. Selector de items por página
<select class="form-select" id="itemsPerPage" onchange="changeItemsPerPage(this.value)">Permite al usuario elegir cuántos elementos ver por página (5, 10, 25, 50, 100).
7. Información de contexto
Mostrando <?= count($solicitudes) ?> de <?= $total_solicitudes ?> solicitudesMuestra información útil sobre qué registros se están viendo.
Flujo completo:
El usuario accede a la página (o cambia los parámetros)
PHP calcula qué registros debe mostrar
Se ejecuta la consulta SQL con
LIMITSe genera la tabla con solo esos registros
Se crean los controles de paginación
El usuario puede navegar entre páginas o cambiar items por página
Ventajas de esta implementación:
✅ Mejora el rendimiento (no carga todos los registros)
✅ Mejora la usabilidad
✅ Es responsive (usando Bootstrap)
✅ Permite personalizar items por página
✅ Incluye validaciones de seguridad
¿Te gustaría que profundice en algún aspecto específico de la paginación?
Comentarios
Publicar un comentario