Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] stronicowanie - problem z większymi wynikami
Forum PHP.pl > Forum > Przedszkole
!*!
  1. <?php
  2. if (isset($wynik)) { $_SESSION['wyszukaj'] = $_POST['wyszukaj'];}
  3.  
  4. function pages ($first, $red, $nrpages, $zap) {
  5. if($red > $nrpages ){
  6. $red = $red/$nrpages; 
  7. $ile = ceil($red); 
  8.  
  9.  
  10. if ($first!=0) echo("<a href=\"".$_SERVER['PHP_SELF']."?first=" . ($first-$nrpages) . "\" title=\"Poprzednie\"><<</a> "); 
  11.  
  12. for ($i=1;$i<=$ile;$i++) { 
  13. echo("<a href=\"".$_SERVER['PHP_SELF']."?first=" . ($i*$nrpages-$nrpages) . "\" title=\"" . ($i*$nrpages-($nrpages-1)) . "-" . ($i*$nrpages) ."\">");
  14.  
  15. if ( $red < 0 ) {if ($first==($i*$nrpages-$nrpages)) { 
  16. echo ("<b>" . $i . "</b></a> "); $akt=$i-1; } else { print ("" . $i . "</a> "); 
  17.  } 
  18. } 
  19.  
  20. else{
  21. if ($first==($i*$nrpages-$nrpages)) 
  22.  { 
  23. echo ("<b>" . $i . "</b></a> "); $akt=$i; } else { print ("" . $i . "</a> ");  
  24.  } 
  25. }
  26. } 
  27. if ($akt<$ile) echo ("<a href=\"".$_SERVER['PHP_SELF']."?first=" . ($first+$nrpages) . "\" title=\"Następne\">>></a>");
  28. }
  29. }
  30. ?>


Odpowiada to za stronicowanie które wygląda tak:

  1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 >>


tylko że przy większej ilości stron trochę to nie praktyczne, chciałbym tak:

  1. 1 2 3 4 5 6 7 8 9 10 ... 22 >>


tylko nie wiem jak uciąć ten wynik
nithajasz
Dodaj sobie kilka warunków

  1. <?php
  2. if($i<=10) 
  3. {
  4. //wypisanie nr stron do 10
  5. $pager .= $i.' ';
  6. }
  7. $pager .= ' ... ';
  8. if($i==$nrpages)
  9. {
  10. //wypisanie ostatniej strony
  11. $pager .= $i;
  12. }
  13. ?>


W taki sposób najprościej ograniczyć ilości wyświetlanych stron.
Przykład powyżej to tylko wzór jak można to zrobić bo brakuje tu np. "poprzednia", "następna", na sztywno ustawione jest pierwsze 10 stron a powinny się przesuwać.

http://forum.php.pl/index.php?showtopic=92...rt=#entry465367
Tu masz ładnie pokazany taki podział stronicowania. Wystarczy przeanalizować smile.gif

http://forum.php.pl/index.php?showtopic=35...t=0&start=0
Tu podobnie jak wyżej..
Spykaj
Najlepiej wylicz aktualną stronę np. jest ona piąta, wyświetl 2 z lewej strony, dwie z prawej, pierwszą i ostatnią, i wypisz jakoś tak:

1 .. 3 4 [5] 6 7 .. 42
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.