Foros del Web » Programando para Internet » PHP »

Paginación PHP

Estas en el tema de Paginación PHP en el foro de PHP en Foros del Web. Hola, me gustaría saber si tienen alguna idea para paginar varios registros que tengo en MYSQL. El problema principal es que según un parametro quiero ...
  #1 (permalink)  
Antiguo 11/05/2013, 13:18
Avatar de veniwarez  
Fecha de Ingreso: julio-2010
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 3
Paginación PHP

Hola, me gustaría saber si tienen alguna idea para paginar varios registros que tengo en MYSQL. El problema principal es que según un parametro quiero mostrarlos o no y no consigo llegar a la solución teniendo en cuenta que por ejemplo en cada pagina quiero poner 10.
Imaginen que el 9 no quiero mostrarlo entonces el 11 entra en la primera pagina y al pasar a la segunda tambien se mostraría, es ese el problema.

Espero sepan alguna idea
Gracias
Atte VW

PD: Llevo mucho tiempo pensando en como podría hacerlo y no encuentro la manera ya que o bien se me desfasaría o mostraría de más.

Última edición por veniwarez; 11/05/2013 a las 13:45
  #2 (permalink)  
Antiguo 11/05/2013, 13:57
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Paginación PHP

Si no quieres mostrar el registro 9, simplemente manteniendo la condición de filtrarlo (no mostrarlo) en las consultas que hagas en las diferentes páginas se resuelve el problema.

Suponiendo que la condición fuera no mostrar el usuario juan que está en la fila 9, haces tu consulta

select * from usuarios where nick !='juan' limit 0,10

esto te dará 10 registros omitiendo la fila 9. (1,2,3,4,5,6,7,8,10,11)

en la siguiente página consultas igual, manteniendo la condición, sólo cambiando páginas

select * from usuarios where nick !='juan' limit 10,10

te daría (12,13,14....21)
  #3 (permalink)  
Antiguo 11/05/2013, 14:10
Avatar de veniwarez  
Fecha de Ingreso: julio-2010
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Paginación PHP

Gracias, pero hm eso es lo que pensé y no puede ser que se solape?

Esque es super confuso.
Imaginemos
20 Usuarios
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

En cada pagina quiero mostrar 10
entonces la primera tendra
1,2,3,4,5,6,7,8,9,10 y la segunda 11,12,13,14,15,16,17,18,19,20 entonces si omito el numero 8 la primera pagina tendría 9 en lugar de 10 ¿no? y si decidiese mover el 11 a la pagina 1 tendría 1,2,3,4,5,6,7,9,10,11 y en la segunda como cargo los registros por el numero de pagina tendría 11,12,13,14,15,16,17,18,19,20 ¿no?

perdón si me estoy confundiendo pero esque llevo mucho tiempo sin encontrar la solución al problema.

Porque yo cargo los ID con el numero de la pagina
P.Ej: Pag 1 Max=1*10; Min=Max-9--->Max=10, Min=9;
P.Ej: Pag 2 Max=1*10; Min=Max-9--->Max=20, Min=19;
P.Ej: Pag 3 Max=1*10; Min=Max-9--->Max=30, Min=29;

Muchas gracias por la ayuda!
Atte VW
  #4 (permalink)  
Antiguo 11/05/2013, 14:10
 
Fecha de Ingreso: septiembre-2010
Mensajes: 64
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Paginación PHP

No sufras mucho con eso compañero, yo tambien tenia ese problema quise hace un paginador pero no me funciona o no me mostraba correctamente, ya q mi nivel no es muy avanzado al final opte por una clase de paginador es muy facil implementarlo y puedes mostrar el paginador segun la cantidad de registros q pidas:
De cada descarga la ultima version del paginador
Código:
http://www.catchmyfame.com/2011/10/23/php-pagination-class-updated-version-2/
Aca t explican como utilizarlo y descargar los ejercicios de ejemplo
Código:
http://www.catchmyfame.com/2007/07/28/finally-the-simple-pagination-class/
Las paginas estan en ingles pero con el google traductor lo puedes traducir ya q es entendible, aqui tambien explican como hacer uso del paginador en español

Código:
http://www.masquewordpress.com/paginacion-php-con-clase/
Y una imagen de como es el paginador q muy completo a mi parecer


Por ultimo te muestro como lo implemente este paginado en una trabajo q estoy realizando, que gracias al foro estoy logrando terminar
Código:
http://anunciosvirtual.com/bajas.php
  #5 (permalink)  
Antiguo 11/05/2013, 14:12
Avatar de veniwarez  
Fecha de Ingreso: julio-2010
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Paginación PHP

Cita:
Iniciado por ocp001a Ver Mensaje
Si no quieres mostrar el registro 9, simplemente manteniendo la condición de filtrarlo (no mostrarlo) en las consultas que hagas en las diferentes páginas se resuelve el problema.

Suponiendo que la condición fuera no mostrar el usuario juan que está en la fila 9, haces tu consulta

select * from usuarios where nick !='juan' limit 0,10

esto te dará 10 registros omitiendo la fila 9. (1,2,3,4,5,6,7,8,10,11)

en la siguiente página consultas igual, manteniendo la condición, sólo cambiando páginas

select * from usuarios where nick !='juan' limit 10,10

te daría (12,13,14....21)

Pero si la pagina 2 empieza en 10 no mostraría el 10 y el 11? o el 11?
Gracias
  #6 (permalink)  
Antiguo 11/05/2013, 14:14
Avatar de veniwarez  
Fecha de Ingreso: julio-2010
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Paginación PHP

Cita:
Iniciado por hans2488 Ver Mensaje
No sufras mucho con eso compañero, yo tambien tenia ese problema quise hace un paginador pero no me funciona o no me mostraba correctamente, ya q mi nivel no es muy avanzado al final opte por una clase de paginador es muy facil implementarlo y puedes mostrar el paginador segun la cantidad de registros q pidas:
De cada descarga la ultima version del paginador
Código:
http://www.catchmyfame.com/2011/10/23/php-pagination-class-updated-version-2/
Aca t explican como utilizarlo y descargar los ejercicios de ejemplo
Código:
http://www.catchmyfame.com/2007/07/28/finally-the-simple-pagination-class/
Las paginas estan en ingles pero con el google traductor lo puedes traducir ya q es entendible, aqui tambien explican como hacer uso del paginador en español

Código:
http://www.masquewordpress.com/paginacion-php-con-clase/
Y una imagen de como es el paginador q muy completo a mi parecer


Por ultimo te muestro como lo implemente este paginado en una trabajo q estoy realizando, que gracias al foro estoy logrando terminar
Código:
http://anunciosvirtual.com/bajas.php

Muchas gracias ahora mismo miro, lastima porque me hacía ilusión saber hacerlo ya que hace tiempo que llevo con esta idea y ahora por fin que me pongo a hacerlo nada...
jeje
Gracias
  #7 (permalink)  
Antiguo 11/05/2013, 14:30
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Paginación PHP

Cita:
Iniciado por veniwarez Ver Mensaje
Gracias, pero hm eso es lo que pensé y no puede ser que se solape?

Esque es super confuso.
Imaginemos
20 Usuarios
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

En cada pagina quiero mostrar 10
entonces la primera tendra
1,2,3,4,5,6,7,8,9,10 y la segunda 11,12,13,14,15,16,17,18,19,20 entonces si omito el numero 8 la primera pagina tendría 9 en lugar de 10 ¿no? y si decidiese mover el 11 a la pagina 1 tendría 1,2,3,4,5,6,7,9,10,11 y en la segunda como cargo los registros por el numero de pagina tendría 11,12,13,14,15,16,17,18,19,20 ¿no?

perdón si me estoy confundiendo pero esque llevo mucho tiempo sin encontrar la solución al problema.

Porque yo cargo los ID con el numero de la pagina
P.Ej: Pag 1 Max=1*10; Min=Max-9--->Max=10, Min=9;
P.Ej: Pag 2 Max=1*10; Min=Max-9--->Max=20, Min=19;
P.Ej: Pag 3 Max=1*10; Min=Max-9--->Max=30, Min=29;

Muchas gracias por la ayuda!
Atte VW
La paginación no se basa en indices o en números consecutivos, se basa en el numero de registros que la DB arroja, en tu caso en la sentencia SQL que @ocp001a te dio siempre se omitirá el registro 9 por lo cual solo obtendrás 19 registros, lo que se traduce a que en la primera página terminará en el registro 11 y en la siguiente página comenzará en la 12, por ultimo, es ilógico que te preocupes por algo así si ni si quiera has hecho pruebas para ver como se comporta el código, solo es perdida de tiempo y estrés gratuito...

En todo caso, si no te funciona así es porque estas páginando de manera incorrecta, en ese caso muestra el código que usas para ver que es lo que sucede
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #8 (permalink)  
Antiguo 11/05/2013, 14:50
Avatar de veniwarez  
Fecha de Ingreso: julio-2010
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Paginación PHP

Lo siento pero no entiendo, si estoy haciendo pruebas y nada no comprendo como.
Yo tengo 21 registros , 3 paginas orden descendiente.
Si solo conto las validas son 19.

Lo siento, simplemente no se.

Gracias por su ayuda y atención.
Mejor lo dejo hasta que no sé, se me ocurra o lo entienda.

Atte VW.
:(

PD: Seguramente estoy cometiendo muchos errores y por eso no se como hacer esta paginación.
  #9 (permalink)  
Antiguo 11/05/2013, 14:53
 
Fecha de Ingreso: septiembre-2010
Mensajes: 64
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Paginación PHP

Q raro la imagen del paginador no se muestra, y tiene la ruta correcta supongo debe estar protegida o algo similar, pero aqui esta la imagen del paginador
  #10 (permalink)  
Antiguo 11/05/2013, 14:55
Avatar de veniwarez  
Fecha de Ingreso: julio-2010
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Paginación PHP

Cita:
Iniciado por hans2488 Ver Mensaje
Q raro la imagen del paginador no se muestra, y tiene la ruta correcta supongo debe estar protegida o algo similar, pero aqui esta la imagen del paginador
El que has mostrado hace buena pinta y es justo lo que quería hacer.
  #11 (permalink)  
Antiguo 11/05/2013, 15:06
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Paginación PHP

Cita:
Iniciado por veniwarez Ver Mensaje
Lo siento pero no entiendo, si estoy haciendo pruebas y nada no comprendo como.
Yo tengo 21 registros , 3 paginas orden descendiente.
Si solo conto las validas son 19.

Lo siento, simplemente no se.

Gracias por su ayuda y atención.
Mejor lo dejo hasta que no sé, se me ocurra o lo entienda.

Atte VW.
:(

PD: Seguramente estoy cometiendo muchos errores y por eso no se como hacer esta paginación.
¬¬ sin que muestres el código que tienes es imposible saber que es lo que haces, por lo visto no comprenderás hasta que no hagas pruebas, pero basicamente lo que pasa es que:

a) la db SIEMPRE omitirá el registro 9, por lo cual el solo retornará los registros pertinentes
b) por el punto anterior los indices serían

Indice obtenido al recuperar = indice en la DB
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=10
10=11
11=12

por lo cual se dividirá los registros en el numero de páginas pertinentes

La única forma que entiendas es hacer pruebas, deja de preocuparte y ponte a tipear código para que sepas como funciona...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #12 (permalink)  
Antiguo 11/05/2013, 15:09
Avatar de veniwarez  
Fecha de Ingreso: julio-2010
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Paginación PHP

Sí, estoy intentando variando cosas de momento nada...
Entiendo vuestro punto ahora y es bueno intantaré a ver si puedo hacerlo.

Gracias
Atte VW
  #13 (permalink)  
Antiguo 11/05/2013, 15:26
Avatar de veniwarez  
Fecha de Ingreso: julio-2010
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Paginación PHP

Casi lo consigo pero Nada no encuentro como hacerlo, mejor lo dejaré porque me está empezando a doler la cabeza.

Etiquetas: mysql, registro
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 01:44.