Paginación de resultados con php y mysql

Cuando trabajamos con datos en aplicaciones web como pueden ser fotos guardadas, historial de kilómetros recorridos, clientes almacenados, ofertas realizadas…Nos puede surgir la duda de cómo mostrarlos en pantalla, cuál será la forma más adecuada, ya que hay múltiples opciones de hacerlo, dependerá de cada caso.

Hay quienes prefieren mostrar todo el contenido en la misma página a lo largo de toda la pantalla conforme vamos bajando con el ratón, hay quienes prefieren hacer una ventana con scroll fija y mostrar todos los datos dentro de esa ventana, haciendo scroll dentro de la misma, de forma que la pantalla se mantiene en su sitio.

Finalmente hay quienes optan por mostrar los resultados en diferentes páginas, y de ello hablaremos en este artículo, de la paginación de resultados con php y Mysql.

paginacion de resultados con php y mysql

PASOS PARA REALIZAR UNA PAGINACIÓN DE RESULTADOS CON PHP Y MYSQL

Para realizar una paginación de resultados en php y mysql hay que seguir una serie de pasos bastante sencillos, iremos exponiendo una a una.

  1.  Realizamos la consulta sql de todo el contenido que queremos distribuir en las diferentes páginas.
  2. Guardaremos en una variable el número total de elementos que resulta de la consulta sql.
  3. Guardaremos en otra variable el número de elementos que pretendemos mostrar en cada página.
  4. Después guardaremos en otra variable distinta el número total de páginas, que obtendremos dividiendo el total de elementos de la consulta entre el número de elementos por página.
  5. Indicamos la página a mostrar y el inicio del registro a mostrar.
  6. Ejecutamos la consulta o query limitando y ordenando los registros y que variará en función de la página en la que nos encontremos.

Bueno, hasta aquí la teoría, vamos a la práctica viendo cada uno de los pasos. Expongamos el ejemplo:

Ejemplo de paginación php mysql

Vamos a suponer que tenemos guardada en una tabla de la base de datos un listado de clientes, con sus nombres, apellidos, correos… Esos clientes queremos mostrarlos en pantalla, pero como hay muchos hemos decidido realizar una paginación de resultados con php y mysql. Vayamos por pasos:

Hemos guardado en una variable la consulta sobre la tabla de clientes, después hemos guardado en la variable totalregistros, el número resultante del total de la consulta, es decir el número total de clientes de nuestra tabla.

Hemos guardado en la variable registrosporpágina el número total de registros que pretendemos que se muestre en cada página, en nuestro caso 10, de esta manera la experiencia de usuario será más favorable ya que no tendrán que ir haciendo scroll por toda la pantalla.

En este último fragmento de código lo que le hemos hecho ha sido indicar cual es la página que mostrar por defecto, es decir la página 1, es decir, si no existe $_GET[“pagina”], que sería la página que capturaríamos con el método get, quiero que me muestre la página 1 y muestra los resultados correspondientes a esa página. Si no estamos en la página 1 por defecto, captura la página y muestra los resultados correspondientes.

Imaginemos que estamos en la página 3. El resultado de la operación de la variable $limit_inicio sería de 20; Luego el inicio de la página 3 debería ser a partir del resultado o del cliente número 20.

Tras esto guardamos en una variable la consulta con todo lo que llevamos hecho, es decir, limitando el número de registros por página desde el cliente $limit_inicio, mostrando sólo 10 registros ($registrosporpagina) lo que nosotros hemos guardado en la variable $consultapágina.

Nos queda por último mostrar las páginas para poder seleccionar, que para este caso lo haremos como lista desordenada <ul> <li>. Haremos un bucle for para que muestre en html desde la página 1 hasta lo guardado en la variable totalpáginas.

Ejemplo de paginación php mysql

Realizar una paginacion en php y mysql no es complicado, sin embargo requiere además de lógica tener unos determinados conocimientos de php  y de mysql, aunque hay otras formas de hacerlo. Lo primero es tomar la decisión de cómo mostrar los resultados en pantalla, en función de lo cual optaremos por utilizar este método u otro.

Si te sirve de ayuda, no dudes en compartir!Share on LinkedInShare on FacebookTweet about this on TwitterPin on PinterestShare on Google+

Deja un comentario