Jeg har nu styr på det, men lad mig sige med det samme jeg at jeg er vant til at skrive en "paging" funktionalitet lidt anderledens:
Som det første vil jeg altid gerne have at brugeren ser et side nummer, og ikke offset til databasen. Det gør det også lettere for en med bare en smule kendskab til URL'en at rette sig frem til en specifik side uden at skulle gange op med et bestemt tal - samtidigt udelukker man også at der bliver sendt et offset der bygger "skæve" lister.
Min løsning ville derfor se sådan ud:
<? // antal rækker fra tabel $prSide = 5; // hvis $_GET['side'] er sat og er større end 0, skriv til $visFra // brug floor() til at undgå at der er skrevet et // mere eksotisk tal i URL'en // vi trækker 1 fra sidetallet og gange med $visFra // vi har nu et korrekt offset i $visFra // eller skriv 0 $visFra = (isset($_GET['side']) && $_GET['side']) > 0)?(floor($_GET['side'])-1)*$visFra:0;
// tæl antal beskeder i gæstebogen // og udregn antal sider $antalBeskeder = mysql_result(mysql_query("SELECT COUNT(id) FROM gbog")), 0); $antalSider = ceil($antalBeskeder / $prSide);
// frem og tilbage links // hvis vi er på et sidetal større end 1 // byg "Forrige" link if ($_GET['side'] > 1) { echo '<a href="gbog.php?side='.($_GET['side']-1).'">Forrige</a>'; }
// hvis vi er på et sidetal mindre end antal sider // byg næste link if ($_GET['side'] < $antalSider) { echo '<a href="gbog.php?side='.($_GET['side']+1).'">Næste</a>'; }
Jeg synes du skulle tage et kig på at udskrive rigtige sidetal, i stedet for et offset, men det er jo en smagssag :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.