Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Dzielenie stron
openwater
post 26.09.2006, 16:01:43
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 27.09.2005

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


Witam, posiadam skrypt do dzielenia wyników na podstrony, ale podstron jest tak dużo, że numerków jest zbyt dużo, i chciłbym zrobić coś takiego, aby prezentowany podział był w postaci:

1, 2, 3 ... 76, 77, 78 - dla strony pierwszej
1, 2, 3 ... 5, 6, 7 ... 76, 77, 78 - dla dowolnej strony (tutaj "6"
1, 2, 3 ... 76, 77, 78 - dla ostatniej.

w przykładzie ostatnai strona to "78"

Oto skrypt:

  1. <?
  2. // Porcjowanie
  3. echo '<center>'; 
  4. $por_obl = mysql_num_rows(mysql_query("SELECT kat_id FROM katalogi"));
  5. $por_obl = $por_obl/$porcjowanie;
  6. $ile = ceil($por_obl);
  7.  
  8. if ($strona!=0) print ("<a href="admin.php?strona=" . ($strona-$porcjowanie) . "" class="porcjowanie" title="Poprzednie"><b>&laquo; Poprzednie </b></a>&nbsp");
  9.  
  10. for ($i=1;$i<=$ile;$i++)
  11. {
  12.  print ("<a href="admin.php?strona=" . ($i*$porcjowanie-$porcjowanie) . "" class="porcjowanie" title="" . ($i*$porcjowanie-($porcjowanie-1)) . "-" . ($i*$porcjowanie) ."">");
  13.  
  14. if ($strona==($i*$porcjowanie-$porcjowanie))
  15.  {
  16.  print ("<b><big>" . $i . "</big></b></a>&nbsp"); $akt=$i; } else { print ("" . $i . "</a>&nbsp");
  17.  }
  18.  }
  19.  
  20. if ($akt<$ile) print ("&nbsp<a href="admin.php?strona=" . ($strona+$porcjowanie) . "" class="porcjowanie" title="Następne"><span class=text><b>Następne &raquo;</b></span></a>");
  21.  
  22. echo '</center>'; 
  23. // Koniec
  24. ?>


Wie ktoś jak to przerobić?
Go to the top of the page
+Quote Post
JOHNY
post 26.09.2006, 16:52:15
Post #2





Grupa: Zarejestrowani
Postów: 297
Pomógł: 0
Dołączył: 17.01.2003
Skąd: Tarnów

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


  1. <?php
  2. if(!$od){ 
  3. $od = 0;
  4. }
  5. $na_stronie = 5; 
  6.  
  7. $query = "SELECT ..... LIMIT $od, $na_stronie";
  8. $wynik = mysql_query($query);
  9. list($ile)=mysql_fetch_row(mysql_db_query($dbname, "SELECT count(kat_id) FROM katalogi"));
  10.  
  11. $lacznie=$ile;
  12.  
  13. $link = "admin.php";
  14. $wstecz = "&laquo;";
  15. $dalej = "&raquo;";
  16. $rozdzielacz = "";
  17.  
  18. while($row = mysql_fetch_array($wynik)) {
  19. .............................
  20. }
  21. function nawigacja($od, $na_stronie, $lacznie, $link, $wstecz, $dalej, $rozdzielacz) 
  22. { 
  23. $nawigacja=""; 
  24.  
  25. if($od>0) $nawigacja.="<a href="$link?od=". ($od-$na_stronie) ."">$wstecz</a>$rozdzielacz"; 
  26. $stron=ceil($lacznie/$na_stronie); 
  27. if($stron>1) 
  28. { 
  29. for($strona=0; $strona<$stron; $strona++) 
  30. { 
  31. if($strona<|| $strona>=$stron-|| ($strona>=($od/$na_stronie)-&& $strona<=($od/$na_stronie)+1)) 
  32. { 
  33. if($strona==($od/$na_stronie)) $nawigacja.=" ". ($strona+1) ." "; 
  34. else $nawigacja.=" <a href="$link?od=". ($strona*$na_stronie) ."">". ($strona+1) ."</a> "; 
  35. } 
  36. else $nawigacja.="+"; 
  37.  
  38. }
  39. $nawigacja=ereg_replace("[+]+", "...", $nawigacja); 
  40. } 
  41. if($lacznie>$od+$na_stronie) $nawigacja.="$rozdzielacz<a href="$link?od=". ($od+$na_stronie) ."">$dalej</a>"; 
  42.  
  43. return $nawigacja; 
  44. } 
  45.  
  46. $nawigacja=nawigacja($od, $na_stronie, $lacznie, $link, $wstecz, $dalej, $rozdzielacz); 
  47. echo "<div class=pagination><span class="tekst">$nawigacja</span></div><br><br>"; 
  48. }
  49. ?>


Chyba tak jak dobrze pamietam

Większego gotowca już się chyba nie da dać

Ten post edytował JOHNY 26.09.2006, 16:57:58
Go to the top of the page
+Quote Post
Fistach
post 26.09.2006, 16:52:25
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 23.11.2003

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


dla strony pierwszej:

kazesz wyswietlic 3 pierwsze
...
wyswietlasz 3 ostatnie

dla strony wiekszej od trzy i mniejszej od liczbyStron - 3: w miejsce ... musisz wstawic aby wyswietlil aktualny numer strony, poprzedni i nastepny.

ot i cala filozofia:) zmien ten skrypt na takie cos i nie ma problemu.

ja jednak bym dodal w srodku zamiast w tym przykladzie 5,6,7 to dalbym pole select aby moc wybrac numer konkretnej strony lub chyba najlepiej pole input gdzie podasz nr strony do ktorej chcesz przejsc. Bo jezeli bedziesz na 5 a bedziesz chcial wejsc an 15 to bedziesz musial 10 razy kliknac.
Go to the top of the page
+Quote Post
openwater
post 28.09.2006, 12:44:17
Post #4





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 27.09.2005

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


JOHNY: Dzięki, działa jak należy.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 11:17