Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]stronnicowanie - wyliczenie ilości stron
Elber
post
Post #1





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


Witam, mam 2 problemy. Pierwszy - mam skrypt stronicowania
  1. $lp=1;
  2.  
  3. $perPage = 10;
  4. if (isset($_GET['page']) && is_numeric($_GET['page'])) {
  5. $page = (int) $_GET['page'];
  6. if ($page < 1) {
  7. $page = 1;
  8. }
  9. } else {
  10. $page = 1;
  11. }
  12. $start = ($page - 1) * $perPage;
  13. $prev = $page - 1;
  14. $next = $page + 1;
  15. $prevLink = "index.php?kat=".$id."&page=" . $prev;
  16. $nextLink = "index.php?kat=".$id."&page=" . $next;
  17.  
  18.  
  19. $query = mysql_query("select * from `tabela` where `id` = '".mysql_real_escape_string($id)."' order by `name_la` ASC LIMIT $start, $perPage");
  20. while($prod = mysql_fetch_array($query)) {
  21. $a=$lp++;
  22. echo $a;
  23. }
  24. echo "<a href='$prevLink'>","Poprzednia strona</a> | ", "<a href='$nextLink'>", "Następna strona</a>";


I chciałbym, by zamiast tego Poprzednia strona | Następna strona wyświetlały mi się numery stron, a aktywna strony była pogrubiona i na środku np. Jak jesteśmy na 5 stronie by to wyglądało podobnie do tego:
... 3 4 5 6 7 ...

Oraz drugi problem, mam tam numerowanie wyników poprzez $a=$lp++; i jak mam ustawione np. wyświetlanie 10 rzeczy to mam od 1 - 10 ale jak włączam następną stronę to znów liczy mi od 1 - 10 i nie wiem jak zrobić by zapamiętywało ostatnią liczbę i do niej dodawało +1

Ten post edytował Elber 27.12.2010, 22:42:01


--------------------
GG: 564555
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Na początek musisz policzyć ile masz wyników jakie zwraca Ci zapytanie i podzielić to przez liczbę wyników jakie chcesz wyświetlić na stronie, całość zaokrąglić do góry.
  1. $ilosc_stron = floor($wynik_z_zapytania / $ilosc_wynikow_na_stronie);

i w pętli for wyświetlić sobie linki do poszczególnych stron
  1. for($i = 1; $i <= $ilosc_stron; $i++)
  2. {
  3. //...
  4. }

Jeżeli chcesz żeby numerowało wyniki na stronach ze na 2 leci od 20 do 30 to
  1. $poczatek_numerowania = $aktualna_strona * ilosc_wyników na stronie; // pozostawiam tobie wykombinowanie co zrobic z 1 stroną.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
Elber
post
Post #3





Grupa: Zarejestrowani
Postów: 381
Pomógł: 12
Dołączył: 9.07.2007

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


Cytat(skowron-line @ 27.12.2010, 22:54:04 ) *
Jeżeli chcesz żeby numerowało wyniki na stronach ze na 2 leci od 20 do 30 to
  1. $poczatek_numerowania = $aktualna_strona * ilosc_wyników na stronie; // pozostawiam tobie wykombinowanie co zrobic z 1 stroną.



U mnie działa tak:
  1. $lp=$numer_strony * $ilość_wyników_na_stronie - $ilość_wyników_na_stronie + 1


A jeśli to pierwsza strona to porostu $lp=1;

i w pętli
  1. $a=$lp++;


--------------------
GG: 564555
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 Aktualny czas: 21.08.2025 - 12:20