Najwazniejsze- funkcja bardzo prosta, latwa do konfiguracji i implementacji dla kazdej strony.
<?php //deklaracja paginacji autor: trucksweb [at] interia.pl function paginacja_start() { //okreslenie funkcji globalnych //jesli przekazano parametr punktu poczatkowego $start=$_GET['s']; //jesli nie wgraj ustawienia domyslne }else { $start=1; $pokaz=10; } }//koniec paginacja_start //wyswietlenie paginacji i obsluga odnosnikow autor: trucksweb [at] interia.pl function paginacja($liczba_stron,$start,$pokaz,$biezaca_strona) { /**********************************************************************/ //ustawienia wyswietlania linkow $poprzednia_link = TAK; // TAK-jesli ma pokazywac, ze jest to pierwsza strona, NIE-nie pokazuj $nastepna_link = NIE; // TAK-jesli ma pokazywac, ze jest to ostatnia strona, NIE-nie pokazuj /*********************************************************************/ //zliczenie wszystkich stron $query = "SELECT COUNT(*) FROM faktury ORDER BY id DESC"; $liczba_rekordow = $row[0]; //wyznaczenie ilosci stron if($liczba_rekordow > $pokaz) { //jesli jest wiecej niz jedna }else { $liczba_stron =1; } //wyznaczenie punktu poczatkowego $start = $_GET['s']; }else { $start = 0; } //tworzenie lacz do pozostalych stron, jesli takie sa if($liczba_stron > 1) { //okreslenie biezacej strony $biezaca_strona = ($start/$pokaz) + 1; //jesli nie jest to pierwsza strona, tworzenie lacza do Poparzedniej if($biezaca_strona !=1) { }else { //jezeli jest to pierwsza strona, pokaz/ukryj informacje if($poprzednia_link == 'TAK') { }else { } } //tworzenie lacz do pozostalych stron for($i=1; $i <= $liczba_stron; $i++) { if($i !=$biezaca_strona) { }else{ } } //jezeli nie jest to ostatnia strona, tworzenie lacza do Nastepnej if($biezaca_strona != $liczba_stron) { }else { //jezeli jest to ostatnia strona pokaz/ukryj informacje if($nastepna_link == 'TAK') { }else { } } } }//koniec paginacji ?>
implementacja dla strony:
<?php //okreslenie wynikow paginacji paginacja_start($pokaz=10); //standardowe zapytanie, na koncu dajemy LIMIT ze zmiennymi ! $zapytanie = "SELECT cos FROM tabela ORDER by cos DESC LIMIT $start, $pokaz"; //wyswietlenie paginacji: paginacja($liczba_stron,$start,$pokaz,$biezaca_strona); ?>
mozemy w ustawieniach TAK/NIE zadeklarowac czy na skrajnych stronach maja sie pokazywac teksty: poprzednia/nastepna.
dla jednego zapytania mozemy wywolywaj wiele paginacji:
<?php paginacja($liczba_stron,$start,$pokaz,$biezaca_strona); //jakis kod strony paginacja($liczba_stron,$start,$pokaz,$biezaca_strona); ?>
Moze komus sie przyda

Funkcja bedzie rozwijana bo musze ja uzywac w swoim systemie.
Wszelkie sugestie mile widziane (funkcja idealna nie jest, ale to sie kidys zmieni)...