Jak się domyślasz, musisz użyć LIMIT
słowo kluczowe
.
Przyjmuje dwie wartości (cytując) :
- przesunięcie pierwszego wiersza do zwrócenia
- maksymalna liczba wierszy do zwrócenia
W twoim przypadku będziesz musiał użyć czegoś takiego na pierwszej stronie :
select * from your_table order by ... limit 0, 50
A potem na drugiej stronie :
select * from your_table order by ... limit 50, 50
A za trzecią :
select * from your_table order by ... limit 100, 50
I tak dalej;-)
Edytuj po komentarzu: aby uzyskać numer strony, musisz go otrzymać ze swoich adresów URL, co wyglądałoby tak:
http://www.example.com/page.php?pagenum=2
Następnie obliczysz pierwszą wartość limitu:
$offset = 50 * intval($_GET['pagenum']);
I wstaw go w swoim zapytaniu :
select * from your_table order by ... limit $offset, 50
Konstruowanie adresów URL do różnych stron jest teraz kwestią uzyskania takich adresów 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
...
Jeśli wiesz, że masz 700 elementów i 50 na stronę, będziesz mieć 700/50 stron;-)
Tak więc coś takiego powinno wystarczyć :
for ($i=0 ; $i<700/50 ; i++) {
// Use http://www.example.com/page.php?pagenum=$i as URL
}
Oczywiście 700 to wartość, która prawdopodobnie może się zmienić i nie powinna być zakodowana na stałe:należy ją określić z bazy danych, używając count
zapytanie :
select count(*) as total
from your_table
...