Curso PHP XII: Paginación de resultados en Consultas I
19th Mayo 2009 | Curso PHP, Diseño Web, Programación Web
En la Séptima entrega de este Curso de PHP vimos como acceder a una Base de Datos MySQL y listar el contenido de una tabla creando una página web
Hoy vamos a ver como paginar esos resultados, puesto que en el caso de que tengamos, por ejemplo, unas 100 o 200 filas en la tabla no creo que nos interese tirar todas en la misma página puesto que crearían una página demasiado larga, lenta de cargar e incómoda para el usuario. Lo que queremos es mostrar los resultados de 10 en 10, ó de 20 en 20 y mostrar al usuario cuantas páginas de resultados quedan para que el pueda ir avanzando una a una o bien ir a la última directamente. Algo asi hace Wordpress con los Posts de este Blog. Sería bastante incómodo que se cargaran siempre todos en la página principal.![]()
Asi, tomando el código que utilizamos en su día para consultar una Base de Datos, lo vamos a modificar para crear algo como lo que se ve en la captura del blog. La apariencia será diferente puesto que eso ya es aplicarle el estilo que queramos. Lo que interesa ahora es conseguir mostrar el número de páginas de resultados que hay y enlaces para acceder más rápidamente a esos resultados. El código quedaría algo asi:
-
// Desplazamiento inicial, si lo hay
-
$offset = $_REQUEST["offset"];
-
else
-
$offset = 0;
-
// Resultados por página que se mostarán
-
$resultadosPorPagina = 10;
-
$sentencia = "SELECT * FROM tabla LIMIT $offset, $resultadosPorPagina";
-
// Número de filas encontradas por la consulta
-
// Número total de páginas
-
-
}
-
-
-
// Muestra las páginas disponibles
-
echo "<p><strong>Páginas: </strong>";
-
for (i = 0; i <numeroPaginas; i++) {
-
}
-
echo "</p>";
Se mostrarán los resultados de la consulta y debajo algo como esto:
Páginas: [1][2][3]
que son enlaces a las páginas de resultados
Obviamente, esta solución no es perfecta, puesto que si existen muchas páginas de resultados puede ser bastante incómoda. La solución más idónea es la que se ve en la captura pero a eso llegaremos en la segunda parte de este tema, en la próxima entrega del Curso


Para comentar algo busca un icono como este al final de cada post o pincha en el comentario de otro lector.







Comentar este post (2 comentarios)
1. Zea | Julio 15th, 2009 a las 18:38
Una pregunta, ¿que es el desplazamiento inicial? ¿A que se refiere exáctamente?
2. astable | Julio 24th, 2009 a las 18:27
Hola Zea,
El desplazamiento se refiere al indice a partir del cual seleccionas datos de la Base de Datos con la consulta SELECT. Si te fijas al hacer la consulta se utiliza la orden LIMIT para la cual le dices desde que elemento y cuantos elementos quieres mostrar para luego cargarlos. De esa manera si estás en la primera pagina mostrarás, empezando en 0, 10 resultados. Si estuvieras en la segunda página, el desplazamiento inicial seria 10 y mostrarias elementos desde el 10 hasta el 20, y asi sucesivamente. Esa es la idea de paginar los resultados en una web, asi no hace falta cargarlos todos de golpe.
Espero habertelo aclarado asi, sino me vuelves a preguntar y ya está
Escribe aquí tu comentario
Letra pequeña que poca gente lee