Foros del Web » Programando para Internet » PHP »

paginación complicada

Estas en el tema de paginación complicada en el foro de PHP en Foros del Web. hola, imaginemos que quiero paginar 1000 registros ordenados por fecha pero que el nº de elementos por página es variable. La idea es mostrar 5 ...
  #1 (permalink)  
Antiguo 15/04/2009, 19:35
 
Fecha de Ingreso: enero-2004
Mensajes: 207
Antigüedad: 20 años, 3 meses
Puntos: 1
paginación complicada

hola,

imaginemos que quiero paginar 1000 registros ordenados por fecha pero que el nº de elementos por página es variable.

La idea es mostrar 5 filas x 5 columnas, total serían 25 elementos como máximo por página, pero cada vez que la fecha cambia, también hay que cambiar de fila.

Así por ejemplo podríamos tener:

1 - 2 - 3 - 4 - 5
6 - 7
8 -9 - 10
11 - 12 - 13 - 14 - 15
16 - 17 - 18 - 19 - 20

perteneciendo cada grupo a distinto día (1-7), (8-10) y (11-20).

En definitiva no sabemos el nº de registros que va a haber en cada página y por tanto no disponemos tampoco del nº de páginas totales.

¿cómo se puede hacer una paginación en estas condiciones?

Sólo se me ocurre hacer un cálculo previo con un select agrupado por fecha y haciendo un mod 5, mirando cuántas filas no llegarían a 5 y sumarle ficticiamente los elementos. Pero vamos no tengo muy claro cómo sabría en qué página queda qué registro y en definitiva lo veo un cálculo bastante complejo. He visto en webs, sobretodo de ventas de productos cosas parecidas y me imagino que debe haber alguna forma más sencilla de conseguirlo.

Gracias
  #2 (permalink)  
Antiguo 15/04/2009, 21:45
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: paginación complicada

Guarda los resultados en un array, y manten el KEY del ultimo registro mostrado. Asi haces un bucle y muestras los que le siguen, o los anteriores dependiendo de la pagina deseada.

EDIT: Aunque ahora que veo tu ejemplo ... Paginar de esa manera no tiene sentido.

Porque si cada fila es una fecha diferente, como sabras si el usuario quiere ver mas "productos" de la 1era, 4ta o 5ta fecha en tu tabla.

Última edición por Ronruby; 15/04/2009 a las 22:04
  #3 (permalink)  
Antiguo 16/04/2009, 08:51
 
Fecha de Ingreso: enero-2004
Mensajes: 207
Antigüedad: 20 años, 3 meses
Puntos: 1
Respuesta: paginación complicada

en realidad ya mostramos todos los productos de ese día en concreto y no es que cada fila sea una fecha distinta, sino que mostramos todos los de 1 día, de 5 en 5 y saltamos a otra linea cuando pasamos al día siguiente, hayamos llegado al elemento 5 o no.

En el ejemplo que he puesto eran los productos de 3 días. Las dos primeras filas del día 1, la fila 3 del día 2 y las filas 4 y 5 del día 3 (que puede seguir en la siguente página si es que tiene más de 10 productos).

En fin, como he dicho no es nada sencillo porque no sabemos "a priori" cuántos elementos vamos a mostrar en pantalla, sólo que el máximo son 25.
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:47.