Espacio Daycry - Espacio de programación

  • Inicio
  • Categorias
    • - Codeigniter
    • - Symfony
    • - HTML5
    • - Linux / Ubuntu
    • - PHP
    • - Jquery
  • PortFolio - Proyectos Codeiniter
    • - Encuestas Online
    • - Estadísticas - GLPI
    • - Gestión de colas
    • - Web Service - REST

miércoles, 30 de enero de 2013

Pâginación PHP con Librería Zebra Pagination

Posted by daycry at 18:28 Labels: Paginación , Pagination , PHP , programación , web , Zebra

En este blog voy a comentar un tema que se utilizan en casi todas las páginas web que existen, y es el tema de la paginación.
La paginación consiste en dividir una cantidad de resultados en diferentes partes, para que no aparezcan todos de golpe y de esa manera evitar listados muy grandes.

La librería Zebra Pagination, es una librería escrita en PHP, y su función el realizar una paginación aparentemente compleja de forma muy sencilla.

Esta librería se puede descargar de: http://stefangabos.ro/php-libraries/zebra-pagination/


Ejemplo

En este ejemplo vamos a utilizar también la librería ezSQL para conectar con una base de datos.
Antes de continuar con este blog, recomendaría que os leyerais http://daycryweb.blogspot.com.es/2013/01/libreria-ezsql.html, para poder entender un poco el funcionamiento de ezSQL.


Conexión con la Base de datos
<?php

//includes del ezSQL
require_once ' lib/ez_sql_core.php';
require_once 'lib/ez_sql_mysql';

//includes de Zebra_Pagination
require_once 'lib/Zebra_Pagination.php';

$conex = new ezSQL_mysql('usuario', 'password', 'base_datos', 'servidor');

?>

Para poder realizar la pagínación de forma correcta, necesitamos dos parametros:

- Número de datos por página
- Número de datos en total

Esto lo podríamos saber de la siguiente manera:

<?php

//número de datos en total
$total = $conex->get_var('SELECT count(*) FROM alumnos');

//número de datos por página
$resultados = 10;

?>

Una vez tenemos estos dos datos ahora ya podemos utilizar nuetra librería Zebra:

<?php

//instanciamos la clase
$paginacion = new Zebra_Pagination();

//para indicarle el total de registros que van a salir en la tabla
$paginacion->records($total);
$paginacion->records_per_page($resultados);

//para quitar los '0' en los números con una sola cifra, sino saldrían de la siguiente forma 01, 02, ...
$paginacion->padding(false);

?>

Vamos a limitar la salida de los resultados de cada página, con la cláusula LIMIT de MySQL, de esa manera si estamos en la página 1, sacará resultados del 1 al 10, en la página 2, del 11 al 20, y así sucesivamente.

<?php

$alumnos = $conex->get_results('SELECT * FROM alumnos LIMIT ' . (($paginacion->get_page() - 1) * $resultados . ', ' . $resultados);
//$paginacion->get_page(), nos indica en que página estamos, dentro de nuestra paginación de resultados.

//imprimos los resultados
foreach ($alumnos as $alumno){
     echo $alumno->id . " &nbsp; " . echo $alumno->nombre;
}

//para que nos aparezcan el total de páginas, y podamos acceder a cada una de ellas
$paginacion->render();

?>

La librería Zebra, trae un css por defecto, que podríamos utilizar con total normalidad, y los resultados meterlos en una tabla HTML para que quedara mas visual, pero el funcionamiento sería el mismo.

Algo Interesante

Recientemente he publicado un post que habla sobre la paginación en tablas con jquery, son las llamadas dataTables.
Sería interesante que le pasarais para verlo ya que la informática avanza y las tecnologias de paginación tambien.
Aquí os dejo el link:
http://daycryweb.blogspot.com.es/2014/08/datatables-jquery.html


Tweet

Related Posts

  • Codeigniter - Búsqueda por Contenido
    Codeigniter - Búsqueda por Contenido
  • Descargar Emails con POP3 y PHP
    Descargar Emails con POP3 y PHP
  • Descargar Emails con IMAP y PHP
    Descargar Emails con IMAP y PHP
  • Instalación Composer Ubuntu/Debian
    Instalación Composer Ubuntu/Debian

4 comentarios :

  1. Jee9226 de noviembre de 2013, 4:47

    Me ayudas a implementar esta libreria pero con datos XML para poder paginarlos??? Gracias

    ResponderEliminar
    Respuestas
      Responder
  2. xunxoadicto14 de agosto de 2014, 4:26

    Este comentario ha sido eliminado por el autor.

    ResponderEliminar
    Respuestas
      Responder
  3. xunxoadicto14 de agosto de 2014, 4:28

    tu explicacion es muy buena pero como lo puedo hacer con un codigo hecho con dreamweaver con la clausula limit
    ------$query_allmovies = "SELECT * FROM tbltodaslaspelis ORDER BY idPelicula DESC";
    $query_limit_allmovies = sprintf("%s LIMIT %d, %d", $query_allmovies, $startRow_allmovies, $maxRows_allmovies);----------- si me dieras una idea seria fantastico

    ResponderEliminar
    Respuestas
    1. daycry18 de agosto de 2014, 8:52

      La clave de la paginación es el cálculo de qué elementos se deben mostrar y eso se realiza a través de la variable página, esa variable página la puede recoger por get, por post o incluso por ajax, una vez recogido ese valor debes de realizar los cálculos dependiendo del número de elementos que desees mostrar y pasárselos al parámetro LMIT de la query.
      Aunque antes de realizar estos pasos, primero conseguiría que te funcionara la query sin paginación, y después jugar con el LIMIT. Cualquier cosa me avisas o me envías que código tienes para poderte ayudar mejor.

      Eliminar
      Respuestas
        Responder
    2. Responder
Añadir comentario
Cargar más...

Entrada más reciente Entrada antigua Inicio
Suscribirse a: Enviar comentarios ( Atom )

Sígueme en las Redes Sociales



Follow @daycry9



Donaciones

Suscribirse a

Entradas
Atom
Entradas
Comentarios
Atom
Comentarios

Datos personales

daycry
Ver todo mi perfil

Entradas populares

  • Crear archivos PHP ejecutables por terminal UBUNTU
    En este apartado vamos a explicar como ejercutar archivos PHP a través del terminal de Ubuntu. Lo primero que tendríamos que hacer es inst...
  • Pâginación PHP con Librería Zebra Pagination
    En este blog voy a comentar un tema que se utilizan en casi todas las páginas web que existen, y es el tema de la paginación. La paginaci...
  • PHPExcel - Codeigniter
    Este post trata de la integración de la librería PHPExcel en Codeigniter, aunque se podría aplicar a cualquier librería, como por ejemplo mP...
  • PHP- Operaciones con fechas - Sumar Horas, minutos y segundos
    Ejemplo para añadir o sumar un número determinado de hora/s, minuto/s, segundo/s a una fecha en php. Con la función strtotime se puede ...
  • Codeigniter - Múltiples conexiones a base de datos
    Este tema es uno de los temas primordiales sobre el framework Codeigniter, ya que en alguna ocación nos hemos visto obligados a recoger dato...

© Espacio Daycry - Espacio de programación 2013 . Powered by Bootstrap , Blogger templates and RWD Testing Tool