Foros del Web » Programando para Internet » PHP »

Paginacion con array

Estas en el tema de Paginacion con array en el foro de PHP en Foros del Web. Hola tengo un problema Código PHP: foreach( $comments  as  $c )     {          showComment ( $c );              }  es un pequeño sistema de comentarios, ...
  #1 (permalink)  
Antiguo 16/05/2014, 00:12
 
Fecha de Ingreso: diciembre-2013
Mensajes: 108
Antigüedad: 10 años, 3 meses
Puntos: 1
Pregunta Paginacion con array

Hola tengo un problema

Código PHP:
foreach($comments as $c)
    {
        
showComment($c);
        
    } 
es un pequeño sistema de comentarios, no tiene caso explicar showComment es una funcion y $comments=array(); para ir al grano necesito paginar esto no tengo idea de como hacerlo

Código PHP:
foreach($comments as $c)
    {
        
showComment($c);
        
    } 
hacer una paginacion ya que de tener 100 comentarios la pagina tardaria en cargar , de ante mano muchas gracias por su ayuda salu2.
  #2 (permalink)  
Antiguo 16/05/2014, 00:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: Paginacion con array

Si los comentarios los extraes de una BD, es mejor que la paginación la hagas junto a la consulta SQL. En el foro hermano de Cristalab, encontré una buena publicación en la que se explica la manera de hacerlo: Paginación con PHP y MySQL.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 16/05/2014, 05:56
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 16 años, 11 meses
Puntos: 270
Respuesta: Paginacion con array

Una cosa que es importante es separar el paginador, de la fuente de datos que se pagina.
El paginador debe recibir como parámetro esa fuente de datos, que es una clase que debe tener los siguientes métodos:
- getRange($start,$end)
- getCount()
Yo suelo implementar esta clase como una clase abstracta llamada DataSource.Clases derivadas son MysqlDataSource, ArrayDataSource, FileDataSource..Todas esas clases implementan getRange() y getCount().
Un paginador no necesita de la fuente de datos más que esos dos métodos.Esta clase debería ser el único código de paginación necesario.Después, dependiendo del estilo de programación de cada uno, si el paginador debe saber también renderizarse, lo debería hacer en un método aparte, que pudiera ser sobreescrito por clases derivadas.
  #4 (permalink)  
Antiguo 16/05/2014, 18:25
 
Fecha de Ingreso: diciembre-2013
Mensajes: 108
Antigüedad: 10 años, 3 meses
Puntos: 1
Pregunta Respuesta: Paginacion con array

Cita:
Iniciado por dashtrash Ver Mensaje
Una cosa que es importante es separar el paginador, de la fuente de datos que se pagina.
El paginador debe recibir como parámetro esa fuente de datos, que es una clase que debe tener los siguientes métodos:
- getRange($start,$end)
- getCount()
Yo suelo implementar esta clase como una clase abstracta llamada DataSource.Clases derivadas son MysqlDataSource, ArrayDataSource, FileDataSource..Todas esas clases implementan getRange() y getCount().
Un paginador no necesita de la fuente de datos más que esos dos métodos.Esta clase debería ser el único código de paginación necesario.Después, dependiendo del estilo de programación de cada uno, si el paginador debe saber también renderizarse, lo debería hacer en un método aparte, que pudiera ser sobreescrito por clases derivadas.
El problema es que la paginacion no sale porque mi sistema de comentarios tiene sub comentarios ocea replicas al estilo facebook , me explico la paginacion sale pero hay un error fatal cuando pongo - getRange($start,$end)
- getCount() en $end que es hasta que numero de paginas quiero que me muestre me muestra pero suponte que tenga 20 comentarios y dentro de esos 20 hay replicas supongamos que en el comentario 9 hay 3 replicas y yo hago un $end o limit de 10 entonces al hacer eso las replicas cuentan como si fuera un registro cosa que lo es pero con un campo que lo identifica como replica y ps hago la paginacion y desaparecen las replicas lo que no deberia pasar no tengo idea de como hacerlo , eh probado todo hasta donde se.
  #5 (permalink)  
Antiguo 16/05/2014, 18:29
 
Fecha de Ingreso: diciembre-2013
Mensajes: 108
Antigüedad: 10 años, 3 meses
Puntos: 1
Pregunta Respuesta: Paginacion con array

Cita:
Iniciado por dashtrash Ver Mensaje
Una cosa que es importante es separar el paginador, de la fuente de datos que se pagina.
El paginador debe recibir como parámetro esa fuente de datos, que es una clase que debe tener los siguientes métodos:
- getRange($start,$end)
- getCount()
Yo suelo implementar esta clase como una clase abstracta llamada DataSource.Clases derivadas son MysqlDataSource, ArrayDataSource, FileDataSource..Todas esas clases implementan getRange() y getCount().
Un paginador no necesita de la fuente de datos más que esos dos métodos.Esta clase debería ser el único código de paginación necesario.Después, dependiendo del estilo de programación de cada uno, si el paginador debe saber también renderizarse, lo debería hacer en un método aparte, que pudiera ser sobreescrito por clases derivadas.
El problema es que la paginacion no sale porque mi sistema de comentarios tiene sub comentarios ocea replicas al estilo facebook , me explico la paginacion sale pero hay un error fatal cuando pongo - getRange($start,$end)
- getCount() en $end que es hasta que numero de paginas quiero que me muestre me muestra pero suponte que tenga 20 comentarios y dentro de esos 20 hay replicas supongamos que en el comentario 9 hay 3 replicas y yo hago un $end o limit de 10 entonces al hacer eso las replicas cuentan como si fuera un registro cosa que lo es pero con un campo que lo identifica como replica y ps hago la paginacion y desaparecen las replicas lo que no deberia pasar no tengo idea de como hacerlo , eh probado todo hasta donde se.

el problema son las replicas las cuenta como registro cuando no deberia ser asi.
  #6 (permalink)  
Antiguo 17/05/2014, 03:49
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 16 años, 11 meses
Puntos: 270
Respuesta: Paginacion con array

Cita:
Iniciado por videlxu Ver Mensaje
El problema es que la paginacion no sale porque mi
...
No es problema de la paginación.Es problema de que tendrás que calcular mejor lo que hace getRange.Paginar una estructura de árbol no es lo mismo que paginar una estructura tabular.
En todo caso, y para se más cercano a lo que hace facebook y sistemas parecidos, habría que modificar getRange para que aceptara un parámetro más (parent) que, por defecto, es nulo.
  #7 (permalink)  
Antiguo 17/05/2014, 08:28
 
Fecha de Ingreso: diciembre-2013
Mensajes: 108
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Paginacion con array

Cita:
Iniciado por dashtrash Ver Mensaje
No es problema de la paginación.Es problema de que tendrás que calcular mejor lo que hace getRange.Paginar una estructura de árbol no es lo mismo que paginar una estructura tabular.
En todo caso, y para se más cercano a lo que hace facebook y sistemas parecidos, habría que modificar getRange para que aceptara un parámetro más (parent) que, por defecto, es nulo.
Sigo sin entender pero de todas maneras gracias, eso del parent ya se me habia ocurrido para que asi me tome un comentario no nulo como uno y el nulo como si fuera nada pero en fin seguire investigando. GRACIAS.
  #8 (permalink)  
Antiguo 17/05/2014, 11:23
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Paginacion con array

Cita:
Iniciado por videlxu Ver Mensaje
Sigo sin entender pero de todas maneras gracias, eso del parent ya se me habia ocurrido para que asi me tome un comentario no nulo como uno y el nulo como si fuera nada pero en fin seguire investigando. GRACIAS.
Como en tu tabla 'Comentarios' donde tienes un campo "padre" que te dice si ese comentario es replica de alguien o no (si esta en NULL) .. haces RECURSION (aunque claro se puede hacer con bucles) para obtener la cantidad completa de comentarios
__________________
Salu2!
  #9 (permalink)  
Antiguo 17/05/2014, 12:49
 
Fecha de Ingreso: diciembre-2013
Mensajes: 108
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Paginacion con array

Muchas gracias ya voy entendiendo de a pocos nunca habia hecho paginacion con comentarios padre hijo pense que si cogia al padre automaticamente cogia al hijo y hace no contaria como un registro pero es mas complicado de lo que pensaba.

Etiquetas: paginacion
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 20:16.