Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]paginacja puste strony
Forum PHP.pl > Forum > Przedszkole
cer98
Mam taki kod:
  1. <?php
  2.  
  3.  
  4.  
  5. $page = ( int ) $page; if ( !isset ( $page ) or empty ( $page )) { $page = 1; }
  6.  
  7.  
  8.  
  9. $w_pp = 5; // Ile wynikow na stronie
  10.  
  11. $r = $rows % $w_pp;
  12.  
  13. $a = $rows - $r;
  14.  
  15. $lpages = $a / $w_pp;
  16.  
  17. $lpages ++;
  18.  
  19. $start = $page * $w_pp - $w_pp;
  20.  
  21. $limit = $w_pp;
  22.  
  23. $pages_str = '';
  24.  
  25. $pages_str .= '<p>';
  26.  
  27. $pages_str .= ' stron: '.$lpages.', strony: ';
  28.  
  29.  
  30.  
  31. for ( $i=1; $i <= $lpages; $i++ ) {
  32.  
  33. if ($i == $page) $pages_str .= ''.$i.'';
  34.  
  35. if ($i != $page) $pages_str .= ' <a href="adres.php?page='.$i.'">'.$i.'</a> ';
  36.  
  37. };
  38.  
  39.  
  40.  
  41. $pages_str .= '</p>';
  42.  
  43.  
  44.  
  45. $pages .= $pages_str;
  46.  
  47. ?>


Mam taki kod, ale jak mam wyników 5, a limit na 5 to wtedy pojawiają się 2 strony. Na pierwszej jest 5 wyników, a w drugiej jest pusto. Jak zapobiec temu, aby nie otrzymywać pustych stron? Jak dopisać następna, poprzednia, nie mówiąc o "... 100 120"?
kontur
moze tak:

$ilosc_stron= ceil($ilosc_wynikow/$ilosc_wyswietlanych_wynikow);

ceil zwraca pierwsza mozliwa liczbe calkowita wieksza od wartosci podanej jako argument. Jesli wiec masz np 6 wynikow a na stronie chcesz wyswietlic 5 to ceil(6/5) zwroci Ci 2, czyli potrzebujesz uutworzyc 2 stronki a jak wynikow masz 5 to ceil(5/5)=1 czyli tworzysz jedna strone.
cer98
Poprawiłem, jednak później i tak liczba strona jest inkrementowana

  1. $lpages ++;
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.