Foros del Web » Programando para Internet » PHP »

Paginación en PHP

Estas en el tema de Paginación en PHP en el foro de PHP en Foros del Web. Hola, he visto muchas formas de paginación aquí en el foro, pero como logro hacer una de la siguiente forma Páginas (39): [1] 2 3 ...
  #1 (permalink)  
Antiguo 28/10/2003, 10:50
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 14 años, 4 meses
Puntos: 0
Pregunta Paginación en PHP

Hola, he visto muchas formas de paginación aquí en el foro, pero como logro hacer una de la siguiente forma


Páginas (39): [1] 2 3 4 5 6 7 8 9 » ... Última »


y si estoy en la página 5 por ejemplo aparezca:



(39): Primera 2 3 4 [5] 6 7 8 9 » ... Última »


los ejemplos que he visto dicen Anterior - Siguiente pero supongase el caso de que sean 1000 registros, seria muy incomodo llegar desde el primero hasta el registro numero 1000


si saben de alguna técnica o ejemplo para estudiar el caso, porfavor hagan un reply :o)


  #2 (permalink)  
Antiguo 28/10/2003, 12:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Puedes usar esta classe que hace lo que pretendes:

http://www.justinvincent.com/home/ar...p?articleId=18

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 28/10/2003, 14:41
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Supongo que tu codigo de paginacion genera los links de las paginas con un for tipo:
Código PHP:
for ($i=0;$i<$pages;$i++) 
Suponiendo que 0 es el valor para la primera pagina, y que la ultima es $pages-1.

Bien, si cambias este codigo a:
Código PHP:
$inicio=0;
$final=$pages;
for (
$i=$inicio;$i<$final;$i++) 
tienes exactamente lo mismo

Pero con una sutil diferencia. Ahora puedes "jugar" con los valores de $inicio y $final. Puedes decidir hacer:
Código PHP:
// $pagina es la pagina actual
$inicio=$pagina 5;
$final=$pagina 5;
if (
0>$inicio$inicio=0;  // para evitar que se salga de rango
if ($pages<$final$final=$pages;  // para evitar que se salga de rango

for ($i=$inicio;$i<$final;$i++) 
te saldria (mas o menos) los links de 5 antes a la apgina actual hasta 5 despues de la pagina actual.

Asi que jugando con la pagina actual, calculas "dinamicamente" $inicio y $final, que son las variables que controlan que links aparecen.

Suerte.

PD: No tomes este codigo como "palabra de dios". Entiende como funciona, la idea de usar esas variables y jugar. Los valores los debes obtener tu.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:45.