Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Paginacja, skrypt kolejne strony
Forum PHP.pl > Forum > Przedszkole
pjamalia
Witam wszystkich.

Mam kawałek skryptu odpowqiedzialnego za funkcjonalność paginacji na swojej stronie www. Czy mógłbym prosić o małą pomoc? Skrypcik działa bez zarzutów lecz mam już ponad 20 podstron i wygląda to nieestetycznie. Każdy numerek jest wyświetlany. Chciałbym na podstawie tego skrypciku zrobić aby co 10 stron była opcja np 1,2,3 ... 10 [20] itd żeby można było np skoczyc do następnej dziesiątki i żeby pokazywał 11,12,13... 20 [30].


  1. echo '<div id="paginacja">';
  2. //Teraz wypadało by wyświetlić jakąś nawigację
  3. //echo '<br /><br /><center>';
  4. //jeśli nie jesteśmy na pierwszej stronie
  5. if($_GET['strona']>0)
  6. {
  7. //wyswietlamy link do poprzedniej strony
  8. echo '<a href="?strona='.($_GET['strona']-1).'" ><b><< Poprzednia</b></a> ';
  9. }
  10. for($i = 0;$i<=floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE);$i++)
  11. {
  12. if ($i==$_GET['strona'])
  13. {
  14. echo '<a href="?strona='.($i).'" ><b>>[ '.($i+1).' ]<</b></a> ';
  15. }
  16. else
  17. {
  18. echo '<a href="?strona='.($i).'" >[ '.($i+1).' ]</a> ';
  19. }
  20. }
  21. //jeśli nie jesteśmy na ostatniej stronie
  22. if($_GET['strona']<floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE))
  23. {
  24. //wyświetlamy link do nastepnej strony
  25. echo ' <a href="?strona='.($_GET['strona']+1).'" ><b>Następna >></b></a>';
  26. }
  27. //echo '</center>';
  28. echo '</div> ';


pozdrawiam
Rysh
Wyświetla: 1-3, aktualną-1, aktualną, aktualną+1, każdą podzielną przez 10 i ostatnią.
  1. $newsow = '177'; //pobieramy ile mamy danych w bazie
  2. $ile = '5'; //ile wyświetlamy pozycji
  3. $stron = ceil($newsow/$ile);
  4. if(isset($_GET['strona']) AND $_GET['strona'] > 1) {
  5. echo "<a href='?strona=". ($_GET['strona']-1) ."'><< WSTECZ</a> ";
  6. }
  7. for($i=1; $i<=$stron; $i++){
  8. if($i <= 3 OR $i >= ($stron-1) OR ($_GET['strona']+1)==$i OR ($_GET['strona']-1)==$i OR ($_GET['strona'])==$i OR $i%10==0 OR $i == $stron) {
  9. echo "<a href='?strona=". $i ."'>". $i ."</a> ";
  10. }
  11. }
  12. if($_GET['strona'] < $stron) {
  13. echo "<a href='?strona=". ($_GET['strona']+1) ."'>DALEJ >></a> ";
  14. }
timon27
Pozwolę sobie coś dodać:
trzykropki pomiędzy odległymi stronami dają lepszy obraz:

  1. $newsow = '177'; //pobieramy ile mamy danych w bazie
  2. $ile = '5'; //ile wyświetlamy pozycji
  3. $stron = ceil($newsow/$ile);
  4. if(isset($_GET['strona']) AND $_GET['strona'] > 1) {
  5. echo "<a href='?strona=". ($_GET['strona']-1) ."'><< WSTECZ</a> ";
  6. }
  7. $poprzednia=0;
  8. for($i=1; $i<=$stron; $i++){
  9. if($i <= 3 OR $i >= ($stron-1) OR ($_GET['strona']+1)==$i OR ($_GET['strona']-1)==$i OR ($_GET['strona'])==$i OR $i%10==0 OR $i == $stron) {
  10. if($i!=$poprzednia+1) echo "...";
  11. echo "<a href='?strona=". $i ."'>". $i ."</a> ";
  12. $poprzednia=$i;
  13. }
  14. }
  15. if($_GET['strona'] < $stron) {
  16. echo "<a href='?strona=". ($_GET['strona']+1) ."'>DALEJ >></a> ";
  17. }

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.