1000 podelis sa 10 i imas broj koliko ce ti strana biti i samo parsujes poslje na html
za slucaj da ti ostane ostatak kao sto je kod 1004 uvijek dodaj +1 na rezultat djeljenja.
Pa, nije bas tako lako. Evo kakav bih ja algoritam napravio:
prvo saznas duzinu niza, tj. nesto tipa:
$array_length = scalar (@array);
(gde je @array array koji ti drzi te podatke).
Onda se odlucis koliko hoces redova po stranici ($redova). Sad, posto je u perlu zeznuto zaokruziti broj (ili meni barem ne pada na pamet bilo sta, uradis ovo)
Odatle imas broj strana koje ti trebaju. Sada, da bi to iskoristio, uvek skriptu daj argument $broj_strana i stranu koju treba prikazati ($i). Tako, npr. imas:
print "<a href="skript.cgi?0,$broj_strana">[Pocetak]</a>"; # Ovo je link na prvu stranu
$i = 1;
while ($i < ($broj strana - 1))
{
print "<a href="skript.cgi?$i,$broj_strana">[$i]</a>"; # Ovo su sve strane izmedju prve i poslednje... $i je broj strane na koju se ide
}
print "<a href="skript.cgi?$broj_strana,$broj_strana">[Kraj]</a>"; # Ovo je poslednja stranica
Onda na kraju, namesti da ti skript uvek uzima ta dva argumenta ($broj_strana i $i). $broj strana ti treba za gornju while petlju, a $i da istampas odgovarajuce redove za trenutnu stranu.
npr.
$pocetak = $i * $redova; # Tako, npr. ako si rekao da ce biti 10 redova po strani, a trenutno si na trecoj strani, on ce krenuti da broji od 30... mada bi trebalo od dvadeset... to vec sam doradi)
$kraj = $i * $redova + $redova; # Ovo ce biti kraj... znaci, 40
while ($pocetak < $kraj)
{
print "@array[$pocetak]";
$pocetak++;
}