Goedemiddag leden,

Ik zit momenteel met een probleem. In mijn gastenboek overzicht worden alle laatste berichtjes onder elkaar gezet, en dit dus oneindig. Wat is voor mij de kortste weg om 10 berichten te laten tonen waarna vervolgens automatisch een nieuwe pagina wordt aangemaakt.

Ik zie jullie reacties graag en snel tegemoet haha, release zou volgende week al moeten plaatsvinden.

link naar website

<?php $getmessy = mysql_query("SELECT * FROM `fv_guestbook` ORDER BY `id` DESC ");

if(mysql_num_rows($getmessy) ==0){

echo "Wees de eerste! laat dus snel een bericht achter.";
}else{
$bgset = "1";

echo '<div id="Guestbook">';
while($gbrows=mysql_fetch_array($getmessy)){
if($bgset==1){

echo '<ul class="Guestbook1">
<li>Bericht: '.$gbrows['postmessage'].'</li>
<br><li>door: <b>'.$gbrows['postname'].'</b> op '.$gbrows['postdate'].'</li>
</ul><br>';

$bgset="2";
}else {
echo '<ul class="Guestbook1">
<li>Bericht: '.$gbrows['postmessage'].'</li>
<br><li>door: <b>'.$gbrows['postname'].'</b> op '.$gbrows['postdate'].'</li>
</ul><br>';
$bgset = "1";
}
}
echo '</div>';
}

?> [/code]
Je gebruikt quote voor de code. Maar hier heb je ook [. code] tags!

$getmessy = mysql_query("SELECT * FROM `fv_guestbook` ORDER BY `id` DESC ");


Aanpassen naar:


$getmessy = mysql_query("SELECT id, postmessage, postname, postdate FROM fv_guestbook ORDER BY id DESC LIMIT 0,10");


Wat is er anders:
De backticks: `id` zijn niet netjes om te gebruiken.
Daarnaast gebruik jij * om alle velden op te halen, netter is om dit gewoon uit te schrijven. Dus de velden die je nodig hebt op te halen (bijvoorbeeld: SELECT id, naam, adres).
Ik heb een LIMIT toegevoegd. Dit specificeerd het aantal velden dat er moet worden opgehaald. Jij wil de laatste items ophalen dus gebruik je 0,10 als waarde. Als je bijvoorbeeld de nrs. 5 t/m 10 op wil halen gebruik je 5,10.

Succes!
Nu haalt die idd de eerste 10 op wat ook de bedoeling is. Maar de overige aantal berichten moeten dan bijv op pagina 2 komen te staan. Hoe ga ik dit eigenlijk aanpassen.

Dus met if en else
via LIMIT. Je kunt links maken. Onderaan je pagina:

pag 1, 2, 3 ... etc. etc. en dat link 1 heeft: pagina.php?page=0, link 2 heeft dan pagina.php?page=10, link 3 heeft pagina.php?page=20
zo kun je doorgaan. (dit hoeft trouwens niet per se stappen van tien te zijn, ligt er net aan hoe je het zelf wilt doorvoeren en ontwikkelen).

Dan kun je in je query dit gebruiken:

<?php
$page = 0;
if (isset($_POST['page'])) {
$page = (int)$_POST['page'];
}
$getmessy = mysql_query("SELECT id, postmessage, postname, postdate FROM fv_guestbook ORDER BY id DESC LIMIT ".$page.",10");
?>

't Systeem is eigenlijk zeer simpel. Er zijn genoeg pagination-scripts/voorbeelden te vinden op internet (en ook op deze site)

Reageren