10 berichten tonen en vervolgens nieuwe pagina aanmaken
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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?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>';
}
?>
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>';
}
?>
Gewijzigd op 30/06/2010 13:35:25 door Roy Dekker
Gewijzigd op 30/06/2010 13:34:49 door Dalando De Zuil
Aanpassen naar:
Code (php)
1
$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!
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:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?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");
?>
$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)