Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pager
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
tomilipin
Bardzo fajny, rozbudowany skrypt ale nieco duży objętościowo...
Na moje potrzeby zrobiłem coś takiego, bardzo uniwersalny skrypt, łatwy w edycji i w dostosowaniu do swoich wymogów, króciutka funkcja wyświetlająca numery stron bez bajerów takich jak strzałki (nie każdy tego potrzebuje albo nie chce)
  1. <?php
  2. function pag($ilosc, $a, $c) {
  3.  $start = $_GET['start'];
  4.  $dupa = $ilosc;
  5.  while($ilosc>0) {
  6.  
  7.  if (!isset($b)) { $b="0"; }
  8.  
  9.  $b=$b+1;
  10.  
  11.  if ((($b-1)*$c)+1==$start) {
  12.  echo "[$b] ";
  13.  }
  14.  else {
  15.  print '<a href="?start='.$a.'">'.$b.'</a> ';
  16.  }
  17.  
  18.  $ilosc -= $c;
  19.  $a += $c;
  20.  }
  21.  echo "<br>";
  22.  $i=0;
  23. }
  24. ?>

Użycie jest chyba jasne. Aktualna strona zaznaczona jest w nawiasach, np. [1] i jest to bardzo łatwo zmienić, nie ma niej linka. W każdym linku występuje zmienna $start od której określona ilość wyników będzie wyświetlana, np. $start = 5 a wyświetlamy 3 wyniki na stronę, to zobaczymy wyniki 5, 6, 7. Początek liczenia $start ma znaczenie, dlatego udostępniłem możliwość zmiany początku. Nie wiem jak to wyrazić, ale chodzi o to, że niekiedy liczymy od 1 a niekiedy od 0 - w większości przypadków każdy zrobi jak chce, ale ja pracuję na takiej bazie danych w której pierwszy rekord ma id=1 a więc po kliknięciu w link do strony 1 (zakładając że wyświetlam całą bazę) moja $start musi mieć id 1 (bo przecież nie istnieje rekord z id=0). Zdaję sobie jednak sprawę, że większość z Was liczy od 0 dlatego zuniwersalizowałem tą cześć i można liczyć od ilu się chce smile.gif

$ilosc = ilość wyników, które będą stronicowane, np. ilość rekordów zwróconych przez zapytanie do bazy.
$a = odkąd liczymy $start w linkach, czy od zera czy od jeden. Przydaje się (przynajmniej mi się przydaje) gdy chcemy następnie łatwo wyświetlać wyniki (patrz wyżej - opis).
$c = ile wyników na stronę. Warto potem, w swoim skrypcie odpowiedzialnym za wyświetlanie wyników, skorzystać z tej zmiennej jak również ze zmiennej $start wyciąganej przez GET.

Może to opis dla laików, ale sam takim jestem, dlatego nie obraźcie się, że tak dogłębnie tłumaczę.
Napiszcie proszę, co o tym sądzicie.
Pozdrawiam!
nospor
Rozdzieliłem Twoj post od mojego, gdyż podaleś kolejny, inny skrypt, a dyskutowac o nim to trzeba juz w osobnym watku by sie nie mieszalo.

Chwilowo nie mam czasu by go cenic. Pewnie ktos inny to zrobi
ActivePlayer
  1. <?php
  2. $dupa = $ilosc;
  3. ?>

a to co ?
oidnus
Cytat(ActivePlayer @ 2005-12-05 09:56:30)
  1. <?php
  2. $dupa = $ilosc;
  3. ?>

a to co ?

A to pewnie byla zmienna testowa jakas tongue.gif a ze czlowiek z Polski to uzywa dupa zamiast foo i bar tongue.gif
tomilipin
No tak, $dupa jest już niepotrzebna - faktycznie była testowa winksmiley.jpg
bigZbig
Cytat(tomilipin @ 2005-12-03 22:12:46)
  1. <?php
  2. function pag($ilosc, $a, $c) {
  3.  
  4. }
  5. ?>

Moja uwaga datyczy stylu programowania. Co to jest parametr a i c? Ilość to się mozna domyslec ale a i c? Czlowieku jak bedziesz nadawal takie nazwy zmiennym to predzej czy pozniej sam sie pogubisz nie mowiac juz o innych.
Levabul
Po co odkopujesz temat z przed miesiąca ?

A co do twojego pytania - przecież wszystko jest opisane w pierwszym poście :

Cytat
$ilosc = ilość wyników, które będą stronicowane, np. ilość rekordów zwróconych przez zapytanie do bazy.
$a = odkąd liczymy $start w linkach, czy od zera czy od jeden. Przydaje się (przynajmniej mi się przydaje) gdy chcemy następnie łatwo wyświetlać wyniki (patrz wyżej - opis).
$c = ile wyników na stronę. Warto potem, w swoim skrypcie odpowiedzialnym za wyświetlanie wyników, skorzystać z tej zmiennej jak również ze zmiennej $start wyciąganej przez GET.
bigZbig
Cytat(Levabul @ 2006-01-25 13:40:49)
Po co odkopujesz temat z przed miesiąca ?

A co do twojego pytania - przecież wszystko jest opisane w pierwszym poście :

I co z tego ze z przed miesiaca?

To nie było pytanie (no moze retoryczne) tylko uwaga do stylu kodowania. Czy twoim zdaniem ten sposob nadawania nazw zmiennych jest godny polecenia? (To jest pytanie.)
Levabul
Nie jest on godny polecenia, bo gdyby nie opis to nikt by sie niepołapał (bez głębszego analizowania kodu), do czego dana zmienna służy. Sorry myślałem że zadałeś pytanie co do zmiennych, bo nie wiesz do czego służą.
tomilipin
Moja wina, macie rację. Ten pager to stara sprawa, został już zmieniony 6 razy - zamiast wykorzystywać jeden kod do różnych zdań, modyfikowałem nieco sposób jego działania. W wyniku tego powstało kilka wersji różniących się sposobem obliczania ilości stron.
odnośnie zmiennych, jak już napisał Levabul, dałem opis - ten pager to przecież malutka próba stronicowania, sami widzicie ile mu jeszcze brakuje winksmiley.jpg Toteż do nazw zmiennych nie przywiązywałem wagi...
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.