Hoe kan ik een groot aantal record uit een database op meerdere pagina´s laten weergeven. Zoals bijvoorbeeld in een gastenboek. De berichten worden dan normaal verdeeld in pagina´s van bijvoorbeeld 10 berichten. Ik wil het gaan gebruiken voor een nieuwsarchief. Nu is het nog te overzien, maar het wordt steeds groter.
/* kijken of een positie is meegegeven, anders wordt de 1e pagina getoont */
if(isset($_GET['positie'])==0){
$positie=0;
}else{
$positie=(int)$_GET['positie'];
}
$aantalperpagina=10;
$SQL_code="SELECT * FROM gastenboek ORDER BY datum DESC LIMIT $positie,$aantalperpagina";
$resultaat=mysql_query($SQL_code);
//Aantal records berekenen
$aantal_rijen=mysql_num_rows(mysql_query("SELECT id FROM gastenboek"));
//Met de volgende opdrachten worden de links gemaakt.
$volgendepagina=$positie+$aantalperpagina;
if($volgendepagina>=$aantal_rijen){
$link_volgende="Volgende >>";
}else {
$link_next="<a href=naamvanpagina.php?positie=" . $volgendepagina . ">Volgende >></a>";
}
$vorigepagina=$positie-$aantalperpagina;
if($vorigepagina<0){
$link_vorige="<< Vorige";
} else {
$link_vorige="<a href=naamvanpagina.php?positie=" . $vorigepagina . "><< Vorige</a>";
}
// om de links te maken en weer te geven
<?php echo $link_vorige . " " . $link_volgende ?>
?>
Als je goed naar de uitleg kijkt die ik erbij heb gezet, dan moet je eruit kunnen komen:
Het hele stuk voor de commentaarregel "// om de links te maken en weer te geven"
Moet je zo gebruiken als waar het staat. Verander wel de SQL_code in de query die je zelf wilt gebruiken. (LAAT "LIMIT $positie,$aantalperpagina" wel staan, hierin selecteerd die alleen de records die op een pagina worden weergegeven.
Vervolgens geef je de resultaten weer op je pagina (ff een kort voorbeeld):