Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]stronnicowanie - wyliczenie ilości stron
Forum PHP.pl > Forum > Przedszkole
Elber
Witam, mam 2 problemy. Pierwszy - mam skrypt stronicowania
  1. $lp=1;
  2.  
  3. $perPage = 10;
  4. if (isset($_GET['page']) && is_numeric($_GET['page'])) {
  5. $page = (int) $_GET['page'];
  6. if ($page < 1) {
  7. $page = 1;
  8. }
  9. } else {
  10. $page = 1;
  11. }
  12. $start = ($page - 1) * $perPage;
  13. $prev = $page - 1;
  14. $next = $page + 1;
  15. $prevLink = "index.php?kat=".$id."&page=" . $prev;
  16. $nextLink = "index.php?kat=".$id."&page=" . $next;
  17.  
  18.  
  19. $query = mysql_query("select * from `tabela` where `id` = '".mysql_real_escape_string($id)."' order by `name_la` ASC LIMIT $start, $perPage");
  20. while($prod = mysql_fetch_array($query)) {
  21. $a=$lp++;
  22. echo $a;
  23. }
  24. echo "<a href='$prevLink'>","Poprzednia strona</a> | ", "<a href='$nextLink'>", "Następna strona</a>";


I chciałbym, by zamiast tego Poprzednia strona | Następna strona wyświetlały mi się numery stron, a aktywna strony była pogrubiona i na środku np. Jak jesteśmy na 5 stronie by to wyglądało podobnie do tego:
... 3 4 5 6 7 ...

Oraz drugi problem, mam tam numerowanie wyników poprzez $a=$lp++; i jak mam ustawione np. wyświetlanie 10 rzeczy to mam od 1 - 10 ale jak włączam następną stronę to znów liczy mi od 1 - 10 i nie wiem jak zrobić by zapamiętywało ostatnią liczbę i do niej dodawało +1
skowron-line
Na początek musisz policzyć ile masz wyników jakie zwraca Ci zapytanie i podzielić to przez liczbę wyników jakie chcesz wyświetlić na stronie, całość zaokrąglić do góry.
  1. $ilosc_stron = floor($wynik_z_zapytania / $ilosc_wynikow_na_stronie);

i w pętli for wyświetlić sobie linki do poszczególnych stron
  1. for($i = 1; $i <= $ilosc_stron; $i++)
  2. {
  3. //...
  4. }

Jeżeli chcesz żeby numerowało wyniki na stronach ze na 2 leci od 20 do 30 to
  1. $poczatek_numerowania = $aktualna_strona * ilosc_wyników na stronie; // pozostawiam tobie wykombinowanie co zrobic z 1 stroną.
Elber
Cytat(skowron-line @ 27.12.2010, 22:54:04 ) *
Jeżeli chcesz żeby numerowało wyniki na stronach ze na 2 leci od 20 do 30 to
  1. $poczatek_numerowania = $aktualna_strona * ilosc_wyników na stronie; // pozostawiam tobie wykombinowanie co zrobic z 1 stroną.



U mnie działa tak:
  1. $lp=$numer_strony * $ilość_wyników_na_stronie - $ilość_wyników_na_stronie + 1


A jeśli to pierwsza strona to porostu $lp=1;

i w pętli
  1. $a=$lp++;
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.