sql >> Base de Datos >  >> RDS >> Mysql

Hacer varias páginas a partir de una consulta mysql

Como habrás adivinado, debes usar el LIMIT palabra clave .

Acepta dos valores (entre comillas) :

  • el desplazamiento de la primera fila a devolver
  • el número máximo de filas a devolver


En su caso, tendrá que usar algo como esto para la primera página:

select * from your_table order by ... limit 0, 50

Y, luego, para la segunda página:

select * from your_table order by ... limit 50, 50

Y para el tercero:

select * from your_table order by ... limit 100, 50

Y así sucesivamente;-)


Editar después del comentario: para obtener el número de página, deberá recibirlo de sus URL, que se vería así:

http://www.example.com/page.php?pagenum=2

Luego, calculará el primer valor para el límite, :

$offset = 50 * intval($_GET['pagenum']);

E inyéctalo en tu consulta:

select * from your_table order by ... limit $offset, 50


Construir URL para las diferentes páginas ahora es cuestión de obtener URL como estas:

http://www.example.com/page.php?pagenum=0
http://www.example.com/page.php?pagenum=1
http://www.example.com/page.php?pagenum=2
...

Si sabe que tiene 700 elementos y 50 por página, tendrá 700/50 páginas;-)
Entonces, algo como esto debería funcionar:

for ($i=0 ; $i<700/50 ; i++) {
    // Use http://www.example.com/page.php?pagenum=$i as URL
}


Por supuesto, 700 es un valor que probablemente puede cambiar, y no debe codificarse de forma rígida:debe determinarse a partir de la base de datos, utilizando un count consulta:

select count(*) as total
from your_table
...