Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Algorytm do paginacji
Forum PHP.pl > Forum > PHP
Michael2318
Załóżmy, że mam 16 wyników w bazie i wyświetlam je po 4 na stronę. Linki wyglądają następująco:

index.php?start=1 // pierwsza strona
index.php?start=2 // druga strona
itd.

potrzebuje wymyślić algorytm matematyczny, który będę wciskał w zapytanie jako limit. Czyli do tego przykładu dla:

a) pierwszej strony:
LIMIT 0, 4;
cool.gif drugiej strony:
LIMIT 4, 4;
c) trzeciej strony:
LIMIT 8, 4
d) czwartej strony (ostatniej bo 4 * 4 = 16, a wyzej napisalem, ze lacznie jest 16 wynikow):
LIMIT 16, 4

Akurat w tym przypadku najpierw musimy pomnożyć przez 4, potem już cały czas przez 2. Ale ja chcę to miec uniwersalne bo piszę funkcję, która będzie to obsługiwała na całej stronie, więc raz tych wyników będzie 1565 i po 4 na stronie, a raz 765 i 2 na stronie, dlatego ten algorytm musi być uniwersalny. Jakieś propozycje?
webdice
  1. <?php
  2.  
  3. $perPage = 4;
  4. $recordsCount = 16;
  5. $pages = ceil( $recordsCount / $perPage );
  6.  
  7. $currentPage = isset( $_GET['Page'] ) ? $_GET['Page'] : 1;
  8.  
  9. for( $i = 1; $i <= $pages; $i++ )
  10. {
  11. print '<a href="?Page=' . $i . '">' . $i . '</a>' . " ";
  12. }
  13.  
  14. print '... LIMIT ' . ( $currentPage * $perPage - $perPage ) . ', ' . $perPage;
  15.  
  16. ?>
Michael2318
Dzięki Ci... Ja siędze nad tym algorytmem od 22 i kompletnie nic nie wykminiłem. Serdeczne dizęki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.