Както се досещате, трябва да използвате LIMIT
ключова дума
.
Той приема две стойности (цитиране) :
- отместването на първия ред за връщане
- максималният брой редове за връщане
Във вашия случай ще трябва да използвате нещо подобно за първата страница:
select * from your_table order by ... limit 0, 50
И след това за втората страница :
select * from your_table order by ... limit 50, 50
И за третото :
select * from your_table order by ... limit 100, 50
И така нататък;-)
Редактиране след коментара : за да получите номера на страницата, ще трябва да го получите от вашите URL адреси, което би изглеждало така:
http://www.example.com/page.php?pagenum=2
След това ще изчислите първата стойност за лимита, :
$offset = 50 * intval($_GET['pagenum']);
И го инжектирайте във вашата заявка :
select * from your_table order by ... limit $offset, 50
Създаването на URL адреси към различните страници вече е въпрос на получаване на URL адреси като тези:
http://www.example.com/page.php?pagenum=0
http://www.example.com/page.php?pagenum=1
http://www.example.com/page.php?pagenum=2
...
Ако знаете, че имате 700 елемента и 50 на страница, ще имате 700/50 страници;-)
Така че, нещо подобно трябва да свърши работа :
for ($i=0 ; $i<700/50 ; i++) {
// Use http://www.example.com/page.php?pagenum=$i as URL
}
Разбира се, 700 е стойност, която вероятно може да се промени и не трябва да бъде твърдо кодирана:тя трябва да бъде определена от базата данни, като се използва count
заявка :
select count(*) as total
from your_table
...