Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Paginacja, skrypt kolejne strony
pjamalia
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 1.11.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Rysh
post
Post #2





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


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. }


Ten post edytował Rysh 29.03.2012, 06:36:53
Go to the top of the page
+Quote Post
timon27
post
Post #3





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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. }

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 06:22