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
...