• Domingo 17 de Noviembre de 2024, 22:32

Autor Tema:  Paginación De Registros En Php  (Leído 2135 veces)

lotusr

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Paginación De Registros En Php
« en: Lunes 31 de Octubre de 2005, 17:29 »
0
Gracias por entrar a esta discusión en primera instancia.

El problema planteado es el siguiente, Tengo una consulta de datos a MySQL que me arroja una cantidad exagerada de registros y he intentado desarrollar un método que pe permita mostrar set de registros de tamaños mas manejables por el usuario, pero los script ejemplo que he encontrado en la mayoría de los casos no funciona, y los que medio funcionan, no lo hacen de forma adecuada. Es posible que digan que es algo tan elementan que por que alguien lo pregunta bueno al parecer es tan elementan que ya no se publican métodos efectivos sobre eso o simplemente es muy fácil, realmente quien pueda darme un indicio se lo agradeseria etermaniente

Agredeciendo por adelantado tu ayuda


ATTE

Wilfrido Heredia
Alias: LOTUSR

Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Paginación De Registros En Php
« Respuesta #1 en: Lunes 31 de Octubre de 2005, 18:49 »
0
Bueno, principalmente, depende de la versión de MySql que tengas...

Pero igualmente lo que tienes que hacer, es calcular la cantidad de registros devueltos por la consulta, luego calcular cada cuantos quieres mostrar (total/cada) con lo cual obtienes la cantidad de 'paginas'.

Con estos datos, armas la consulta con un limit al final.. donde el primer valor será el número de página multiplicado por la cantidad de mensajes a mostrar, y el segundo cada cuantos se muestra:

SELECT ..... LIMIT 0,10 ( pagina 0, de 0a 10 )
SELECT ..... LIMIT 10,10 ( pagina 1, de 10 a 20 )
SELECT ..... LIMIT 20,10 ( pagina 2, de 20 a 30 )


Espero te halla servido.

Altareum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Paginación De Registros En Php
« Respuesta #2 en: Lunes 31 de Octubre de 2005, 19:13 »
0
Hola! Realmente todo el secreto de la paginación reside en una línea, la consulta SQL, y a partir de ahí cada uno se monta el sistema de paginación como más le conviene.

Con una o dos variables que se vayan pasando al hacer el cambio de página es suficiente.

Código: Text
  1. SELECT * FROM nombretabla WHERE condicion ORDER BY nombrecampo LIMIT $ini, $num
  2.  

Un contador ($ini) que controla el primer registro que tienes que obtener, y la segunda ($num) que controla el número de registros que quieres obtener a partir del primero ($ini).

En caso de que siempre quieras mostrar 10 registros solo necesitarías usar una variable.

Código: Text
  1. SELECT * FROM nombretabla WHERE condicion ORDER BY nombrecampo LIMIT $ini, 10
  2.  


Al hacer la primera consulta $ini debe ser igual a 0, con lo que la consulta anterior te devolverá los 10 primeros registros. Y con un par de enlaces tendrías la paginación

Código: Text
  1. echo "<a href='paginacion.php?ini=".($ini+10)."'>Ver 10 siguientes</a>";
  2.  
  3. if ($ini > 10)
  4.   echo "<a href='paginacion.php?ini=".($ini-10)."'>Ver 10 anteriores</a>";
  5.  


Faltará algún detalle por pulir pero eso es básicamente lo que debes hacer para paginar registros.


Salu2,
Avalon

lotusr

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Paginación De Registros En Php
« Respuesta #3 en: Lunes 31 de Octubre de 2005, 21:51 »
0
Muchisimas gracias jamas lo habia visto por SQL y eso que mi area fuerte es la SQL bueno hasta a el mejor casador se le va la liebre. De esta solucion a la del picar el arreglo de filas de la consulta a punta de codificación es de cielo a la tierra la pondre en practica y comentare los resultados. Eternamente agradecido se despide

ATTE

Wilfrido Heredia
Alias: LOTUSR

lotusr

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Paginación De Registros En Php
« Respuesta #4 en: Miércoles 2 de Noviembre de 2005, 19:57 »
0
La solución es efectiva pero el registro desde donde debe comenzar el set de registro debe ser en uno menor al que realmente deseas, por ejemplo si deseas del registro numero 1 hasta x cantidad de registros el SQL debe decir ... limit 0, x si lo colocas en 1 te trae desde el segundo registro hasta el x + 1. Muchas gracias por el consejo.

ATTE

Wilfrido Heredia