Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Faça várias páginas de uma consulta mysql


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