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.
TIP: kijk eens bij deze topic:
http://www.phphulp.nl/php/scripts/6/446/

<?php

/* 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 . "&nbsp;&nbsp; " . $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):

<html>
<body>
<table>
<?php
while($dezeweergeven=mysql_fetch_array($resultaat)){
?>

<tr>
<td><?php echo $dezeweergeven['kolomnaam'] ?></td>
</tr>
<?php
}

// EN DAN DUS NA DE WHILE LOOP
echo ("$link_vorige . "&nbsp;&nbsp; " . $link_volgende");
?>

Hoop dat het duidelijk genoeg is zo, anders hoor ik het nog wel van je

Reageren