Como você adivinhou, você tem que usar o
LIMIT
palavra-chave
. Aceita dois valores (citando) :
- o deslocamento da primeira linha a ser retornada
- o número máximo de linhas a serem retornadas
No seu caso, você terá que usar algo assim para a primeira página:
select * from your_table order by ... limit 0, 50
E, então, para a segunda página:
select * from your_table order by ... limit 50, 50
E para o terceiro:
select * from your_table order by ... limit 100, 50
E assim por diante;-)
Editar após o comentário: para obter o número da página, você terá que recebê-lo de seus URLs, que ficaria assim:
http://www.example.com/page.php?pagenum=2
Em seguida, você calculará o primeiro valor para o limite, :
$offset = 50 * intval($_GET['pagenum']);
E injete-o em sua consulta:
select * from your_table order by ... limit $offset, 50
Construir URLs para as diferentes páginas agora é uma questão de obter URLs como estes:
http://www.example.com/page.php?pagenum=0
http://www.example.com/page.php?pagenum=1
http://www.example.com/page.php?pagenum=2
...
Se você sabe que tem 700 elementos e 50 por página, você terá 700/50 páginas;-)
Então, algo assim deve funcionar:
for ($i=0 ; $i<700/50 ; i++) {
// Use http://www.example.com/page.php?pagenum=$i as URL
}
Claro, 700 é um valor que provavelmente pode mudar, e não deve ser codificado:deve ser determinado a partir do banco de dados, usando um
count
consulta :select count(*) as total
from your_table
...