Paginator, script para paginación con PHP y MySQL

Comentamos las características de un script para realizar paginación de resultados con PHP y MySQL. Gratuito y totalmente en español.
Paginator es un script de paginación desarrollado en PHP para dividir resultados de consultas extensas a una base de datos MySql, en grupos de "n" registros por página. Genera, además, una "barra de navegación" que contiene los enlaces a las diferentes páginas (<<anterior 1 2 3 4 siguiente>>).

Nota: Como ejemplo de paginación podemos ver la página de google, donde se dice que hay 13,235 resultados, pero aparecen divididos en varias páginas de 20 resultados cada una.

La característica principal de este script es su fácil utilización, ya que la forma de paginar es muy conocida y utilizada. Por ello, no es necesario entenderlo ni editarlo, sino simplemente incluirlo después de definir al menos una variable. No obstante, todas las líneas están comentadas debidamente, para que sea sencillo seguir la secuencia y saber qué hace el script en cada línea. Y lo mejor de todo es que está completamente en español.

Utilización del script

La utilización es extremadamente sencilla. Debemos Conectar con la Base de datos, definir una sentencia sql válida para MySql y almacenarla en la variable $_pagi_sql. Esta sentencia SQL no debe contener la cláusula "LIMIT", pues será agregada automáticamente por el script.

La definición de esta variable es obligatoria. Se pueden crear otras variables para personalizar el sistema de paginación en detalles como el número de resultados por página o el número de enlaces a otras páginas de resultados que aparecerán.

Luego, se incluye el script de paginación, y se generan otras variables que podemos utilizar para hacer la página de resultados. $_pagi_result es el id de resultado de la consulta, que podemos utilizar con alguna función tipo mysql_fetch_array(). $_pagi_navegación contiene la barra de navegación con enlaces a las distintas páginas y $_pagi_info almacena la información de registros visualizados y número de páginas, algo así como "desde el 16 hasta el 30 de un total de 123".

Vamos a ver un código sencillo que utiliza Paginator para gestionar la paginación de resultados.

//Conexión a la base de datos
$con = mysql_connect("localhost","tu_username","tu_password") or die (mysql_error());
mysql_select_db("tu_base",$con) or die (mysql_error());

//Sentencia sql (sin limit)
$_pagi_sql = "SELECT * FROM clientes WHERE sexo='m' ORDER BY edad";

//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos = 10;

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");

//Leemos y escribimos los registros de la página actual
while($row = mysql_fetch_array($_pagi_result)){
    echo $row['nombre']."<br />";
}

//Incluimos la barra de navegación
echo"<p>".$_pagi_navegacion."</p>";

Como podemos ver, no hay mayor trabajo adicional, respecto al que se realizaría en un código sin paginar. Cabe aclarar que el nombre de las variables que utiliza el script (internas y externas) empiezan todas por el prefijo $_pagi_ para evitar conflictos por coincidencias con los nombres de otras variables que se estén utilizando.

Nota: El autor de este proyecto dejó de mantener la página de inicio, donde ofrecía una descripción más detallada del script, así como la descarga. Nosotros teníamos una copia del código PHP, que la hemos recuperado para aquellos interesados en implementar la paginación de resultados. El script ya tiene años, pero nosotros seguimos utilizándolo en alguna de las secciones de DesarrolloWeb.com sin problemas.

Insistimos en que el script no es nuestro, sino de su autor, Jorge Pinedo Rosas. No hemos pedido permiso para ofrecerlo para descarga, pero esperamos que Jorge no le importe que lo pongamos a disposición de las personas por este canal. Puedes encontrar toda la información sobre la autoría, así como algunas notas para su implementación como comentario en el propio código PHP del script.

Para descargar el script de manera gratuita: http://www.desarrolloweb.com/articulos/ejemplos/paginator.inc.php.zip

Nota: Si quieres aprender a paginar resultados por tu cuenta, en DesarrolloWeb.com hemos publicado un artículo interesante que te puede venir bien: Paginación de resultados con PHP y MySQL.

Autor

Jorge Pinedo

Creador de Paginator

Compartir

Comentarios

JIA

11/7/2005
El enlace a este script ya no existe

Francisco

26/9/2005
Yo he podido entrar sin problemas en la página y descargar el script. Posiblemente el error que hayas encontrado fuera tan solo temporal.

jose

15/5/2006
He realizado el script que propone mostrar paginado el contenido de una base de datos en mysql pero me da problemas en la linea include.Que ocurre lo soluciono si instalo otro php mas actualizado

carlos

31/5/2007
Se supone que genera la navegación automaticamente...alguien puede ayudar, no puedo hacer que funcione para una galeria, quiero desplegar 5 fotos por pagina

Xavier

11/10/2007
No sirve para envio de selecciones multipagina de consultas.

sergios

22/1/2008
Descargue el archivo pero no he podido hacer que me funcione si alguien lo ha le agradecere lo diga.
me envia un error en la parte de include

Mauro

04/1/2009
Muy bueno, anda perfecto. Excelente trabajo y muchas gracias.

Carlos

05/5/2009
Paginator
Hola, no se de dónde conseguir este archivo del include:

include("paginator.inc.php");

Gracias.

tarongeta

06/8/2009
Obtener paginator.ini.php
Yo lo he tenido que descargar de:

http://rapidshare.com/files/242383679/Paginator_v1.6.3.zip

lokavv

25/11/2009
hace lo que le da la gana
Hola a todos

Tengo un pequeño problema, estoy haciendo una pagina que me tiene que mostrar una tabla con muchisimos registros y cada vez que actualizo la pagina me varia el numero de registros que me muestra. ¿por que ocurre eso?

Muchas gracias por adelantado

Alex Serrano

23/2/2010
Excelente
Este es un código muy bueno lo incorpore a mi carrito de compras y esta trabajando perfectamente, no duden en usarlo.

arpuk

26/2/2010
Deprecated: Function eregi_replace() is deprecated
Necesito una solucion a este problema que da la version v 1.6.3. Por lo que he estado mirando en PHP 6 ya esta obsoleta y necesitaria ayuda por favor. Gracias de antemano

maral

21/8/2010
script para base de datos
Buenas tengo un problema estoy haciendo una pagina web y necesito un ejemplo de script para actualizar la base de datos automaticamente me pueden ayudar por favor... Gracias de antemano por lo que puedan hacer por mi.

Víctor

13/12/2010
Remplaza la siguiente linea:
Reemplaza esto:

$_pagi_sqlConta = eregi_replace("select[[:space:]](.*)[[:space:]]from", "SELECT COUNT(*) FROM", $_pagi_sql);

por esto otro:

$_pagi_sqlConta = preg_replace("#select[[:space:]](.*)[[:space:]]from#", "SELECT COUNT(*) FROM", $_pagi_sql);

Saludos!

http://www.vainformatica.net/

Wilson

24/12/2010
No funciona
No funciona el link a paginator

leon

29/5/2011
deprecatet
Bueno lo que yo hago es escribir en el código php:
error_reporting("E-WARNING");

solo mostrara los errores a nivel de warning.

momocita

29/9/2011
Link no funcina
Podrian publicar otro link???? xq el de webcindario no funciona
Gracias

el_quick

11/1/2012
Te recomiendo...
Hola, yo te recomiendo esta otra clase para <a href="http://www.aprender-a-programar.com/paginacion-php">paginar resultados en php</a>, está genial, yo la uso siempre y funciona de maravilla.

Saludos

luisdelbar

01/5/2012
Solucionar problema de paginator Function eregi_replace() is deprecated
El Script es excelente, pero resulta que tiene un detalle y es que hasta PHP 5.2 funciona perfecto, pero si se intenta usar a partir de PHP 5.3 aparece un mensaje de que hay un error en "on line 202"
es decir en la línea 202 de paginator.inc.php

Deprecated: Function eregi_replace() is deprecated in /home/content/html/dominio.com/paginator.inc.php on line 202

La solución es simple para poder usarlo en PHP 5.3

vamos a la línea 202 de nuestro paginator.inc.php
y encontramos lo siguiente:

$_pagi_sqlConta = eregi_replace("select[[:space:]](.*)[[:space:]]from", "SELECT COUNT(*) FROM", $_pagi_sql);

lo cambiamos a esto:

$_pagi_sqlConta = preg_replace("/select[[:space:]](.*)[[:space:]]from/", "SELECT COUNT(*) FROM", $_pagi_sql);

Y ya funciona, suerte en sus proyectos!!

@luisdelbar

Hector

15/5/2012
No me funciona el script
Buenos dias a todo el mundo. He probado el script pero me da el siguiente error y no me pagina:
Undefined variable: _pagi_htaccess
Me encantaría que me echarais una mano porque me estoy volviendo loco.

Gracias.

Un saludo.

julio castillo

01/8/2012
Gracias
Excelente funciono a la primera.

Paul

11/9/2013
ayuda
bueno soy totalmente nuevo en php y mysql y actualmente estoy haciendo pasantias en una empresa que utiliza estos lenguajes, tengo una base de datos en mysql, las consultas las hago desd el php y la parte grafica esta en html, mi pregunta es como puedo hacer para realizar la paginacion vinculando todo ayuda que es urgente

Dia

05/2/2014
solucion a los errores
Bueno, yo acabo de implementar el paginator y logré que funcionara, les dejo este link donde explican cómo corregir un error con edeprecated
http://www.forosdelweb.com/f18/problema-con-paginator-jpinedo-eregi_replace-deprecated-760987/

jorge ivan

24/6/2014
Excelente muchas gracias!!!
Muchas gracias al que haya realizado este script funciona perfecto!!!

lux

04/8/2014
no me funciona el script
prove el script paginator.. y me sale el siguiente error
Notice: Undefined variable: _pagi_htaccess in C:xampphtdocspasajespaginador.php on line 234

Van Fanel

20/10/2014
Paginator.inc
Me tome la libertad de cambiar un poco el código del paginator.inc, ya que MYSQL aparece como depreciado, ahora lo implemente con MYSQLI, espero les sea de ayuda.

https://mega.co.nz/#!bZ8mVSzY!CMYjctCsghCLS1BexiJCdfiDoRvToHR_nyCvbFrYjbM

Saludos.

Felipe Hernandez

07/12/2014
Cuidado
Funciona muy bien, aunque cuidado, siempre que se envíen parámetros por Get se deben recibir y curar (Satinizar) para evitar sqlinyeccion. Gracias por el aporte

vantron

13/1/2015
¿Y como lo hago?
¿Como evitar inyeccion SQL cuando recibes por GET?

elar

11/2/2015
Pregunta
De donde descargo el stylo css

Moisés

05/10/2015
promo paginador
Buen artículo, acabo de publicar un paginador PHP:
http://mac-mix.blogspot.com.es/2015/10/php-poo-paginador-de-resultados.html no había tenido en cuenta lo de no pasar limites con las sentencias al redactar la documentación.

jave

06/11/2015
Funciona
Funciono gracias por el script

baezadrez

21/12/2015
Funciona excelente
Muchas gracias me sirvio mucho el script, y comentarles hace un año estamos usando un sistema de gestion en mi trabajo que yo desarrolle, y no tenia paginado los resultados, bueno no tuve inconvenientes con esto porque es un sistema local, pero ahora que lo integre con un theme de wordpress, tenia que darle un orden a la informacion.

Saludos y sigan asi!!!!

Elkin Jiménez

13/5/2016
Msqli
Van Fanel, gracias me funcionó muy bien para la actualización a mysqli.

Billysoft

23/8/2016
Error Htaccess
Hola percibo este error.. como se puede solucionar? la variable no inicializa
Notice: Undefined variable: _pagi_htaccess in C:xampphtdocssysinventario oolspaginator.inc.php on line 233

Fred

03/10/2016
Excelente
Muchas gracias, pude ahorrarme bastante tiempo! gracias gracias.

Hernan

27/11/2016
Gracias
Pues me facilitaron todo mi trabajo, muchas gracias desarrolloweb, en especialmente al autor del script,
se los agradezco y estoy muy contento de su gran ayuda.