1. Mieszasz logikę z HTMLem
2. Mają się pokazywać 3 pierwsze i 3 ostatnie numery stron? To jak będzie wyglądała nawigacja po stronach środkowych? Moim zdaniem chcesz uzyskać efekt standardowy, czyli stałą szerokość paska nawigacyjnego, gdzie np. dla aktualnej strony 10 będą pokazywały się trzy sąsiednie z każdej strony, coś w rodzaju:
Cytat
<<< poprzednia - 7 8 9 10 11 12 13 - następna >>>
Użyj np. takiej funkcji:
function pasek_nawigacyjny($l_odp,$l_odp_nastronie,$l_odp_napasku,$a) { //funkcja tworząca nawigację
$l_odp_podz = intval($l_odp/$l_odp_nastronie)+1; $l_odp_podz_mod = $l_odp%$l_odp_nastronie;
if($l_odp_podz_mod>0){++$l_odp_podz;}
if($a>=$l_odp_podz){$a=$l_odp_podz-1;}
if($a>1){$tablica['prev']=$a-1;}else {$tablica['prev']=0;}
if($a<=$l_odp_napasku){$koniec=$l_odp_napasku*2+2;}else{$koniec=$a+$l_odp_napasku+1;}
if($a<=$koniec-$l_odp_napasku){$star=$a-$l_odp_napasku;}
if($a>=$l_odp_podz-$l_odp_napasku){$star=$l_odp_podz-$l_odp_napasku*2-1;}
if($koniec>$l_odp_podz){$koniec=$l_odp_podz;}
if($star<1){$star=1;}
for($i=$star;$i<$koniec;++$i){
if($i<$a){$tablica[]=$i;}
if($i==$a){$tablica['active'] = $i;}
if($i>$a){$tablica[]=$i;}
}
if($a<$l_odp_podz-1){$tablica['next']=$a+1;}else{$tablica['next']=0;}
return $tablica;
}
Która zwróci gotową tablicę stron, z zaznaczeniem poprzedniej, następnej i bieżącej. Tablicę wystarczy połączyć z HTML i gotowe. Argumenty funkcji to: liczba rekordów, liczba rekordów na jedną stronę, rozmiar paska i numer aktualnej strony.
Tego samego algorytmu używa google w swojej wyszukiwarce

A przynajmniej taką mam nadzieję