Extra pagina's "aanmaken" als er "te veel" blogs zijn
Hallo,
Ik ben bezig met een soort blog en ik zou graag willen dat in het blog overzicht na 3 blogs een volgende pagina word gemaakt en daar weer de volgende blogs op worden gezet.
Voorbeeldje: Op phphulp na ... reacties wordt er met een soort GET methode een volgende pagina "gemaakt" en daar de volgende reacties op geplaats.
Ik wil wel dat de blogs op tijdsvolgorde lopen dus niet ASC maar DESC (weet even neit hoe ik het anders moet zeggen).
Het volgende heb ik al geprobeerd:
Nu heb ik geprobeerd dit systeempje te omzeilen door gewoon heel veel pagina's alvast aan te maken maar dat is toch niet echt handig en dan leer ik er niet veel van.
Zoals je ziet is dit niet handig :D.
Alvast bedankt!
Mvg,
Nick
Ik ben bezig met een soort blog en ik zou graag willen dat in het blog overzicht na 3 blogs een volgende pagina word gemaakt en daar weer de volgende blogs op worden gezet.
Voorbeeldje: Op phphulp na ... reacties wordt er met een soort GET methode een volgende pagina "gemaakt" en daar de volgende reacties op geplaats.
Ik wil wel dat de blogs op tijdsvolgorde lopen dus niet ASC maar DESC (weet even neit hoe ik het anders moet zeggen).
Het volgende heb ik al geprobeerd:
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
31
32
33
34
35
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
31
32
33
34
35
<?php
$aantal = mysqli_num_rows($select);
$totaal = ceil($aantal/3);
while($arr = mysqli_fetch_array($select, MYSQLI_BOTH))
{
?>
<article class="format-standard">
<div class="entry-date"><div class="number"><?php echo $arr['dag']; ?></div> <div class="year"><?php echo $arr['jaar']; ?></div></div>
<div class="feature-image">
<a href="img/slides/<?php echo $arr['foto']; ?>" data-rel="prettyPhoto"><img src="img/slides/<?php echo $arr['foto']; ?>" alt="Alt text" /></a>
</div>
<h2 class="post-heading"><a href="single.php?blog=<?php echo $arr['id']; ?>"><?php echo $arr['naam']; ?></a></h2>
<div class="excerpt"><?php echo substr(" ".$arr['tekst']." ",0,300); ?>...</div>
<a href="single.php?blog=<?php echo $arr['id']; ?>" class="read-more">Meer lezen →</a>
<div class="meta">
<div class="categories">In <a href="#"><?php echo $arr['label1']; ?></a>, <a href="#"><?php echo $arr['label2']; ?></a></div>
<div class="comments"><a href="#">5 reacties </a></div>
<div class="user"><a href="#">Door <?php echo $arr['door']; ?></a></div>
</div>
</article>
<?php } ?>
<!-- page-navigation -->
<div class="page-navigation clearfix">
<div class="nav-next">
<a href="#">← Nieuwere berichten </a>
</div>
<div class="nav-previous">
<a href="#">Oudere berichten →</a>
</div>
<!--ENDS page-navigation -->
</div>
<?php for($i = 0; $i < $totaal; $i++){ echo "<a href=blog.php?p=".$i.">".$i."</a>, "; }?>
$aantal = mysqli_num_rows($select);
$totaal = ceil($aantal/3);
while($arr = mysqli_fetch_array($select, MYSQLI_BOTH))
{
?>
<article class="format-standard">
<div class="entry-date"><div class="number"><?php echo $arr['dag']; ?></div> <div class="year"><?php echo $arr['jaar']; ?></div></div>
<div class="feature-image">
<a href="img/slides/<?php echo $arr['foto']; ?>" data-rel="prettyPhoto"><img src="img/slides/<?php echo $arr['foto']; ?>" alt="Alt text" /></a>
</div>
<h2 class="post-heading"><a href="single.php?blog=<?php echo $arr['id']; ?>"><?php echo $arr['naam']; ?></a></h2>
<div class="excerpt"><?php echo substr(" ".$arr['tekst']." ",0,300); ?>...</div>
<a href="single.php?blog=<?php echo $arr['id']; ?>" class="read-more">Meer lezen →</a>
<div class="meta">
<div class="categories">In <a href="#"><?php echo $arr['label1']; ?></a>, <a href="#"><?php echo $arr['label2']; ?></a></div>
<div class="comments"><a href="#">5 reacties </a></div>
<div class="user"><a href="#">Door <?php echo $arr['door']; ?></a></div>
</div>
</article>
<?php } ?>
<!-- page-navigation -->
<div class="page-navigation clearfix">
<div class="nav-next">
<a href="#">← Nieuwere berichten </a>
</div>
<div class="nav-previous">
<a href="#">Oudere berichten →</a>
</div>
<!--ENDS page-navigation -->
</div>
<?php for($i = 0; $i < $totaal; $i++){ echo "<a href=blog.php?p=".$i.">".$i."</a>, "; }?>
Nu heb ik geprobeerd dit systeempje te omzeilen door gewoon heel veel pagina's alvast aan te maken maar dat is toch niet echt handig en dan leer ik er niet veel van.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$p = htmlspecialchars(trim($_GET['p']));
if($p == 0 || !$_GET['p']){
$select = mysqli_query($con, "SELECT * FROM blog WHERE id BETWEEN 1 AND 3 ORDER BY id DESC") or die("FOUT: ".mysqli_error($con));
}
elseif($p == 1){
$select = mysqli_query($con, "SELECT * FROM blog WHERE id BETWEEN 4 AND 6 ORDER BY id DESC");
}
elseif($p == 2){
$select = mysqli_query($con, "SELECT * FROM blog WHERE id BETWEEN 7 AND 9 ORDER BY id DESC");
}
elseif($p == 3){
$select = mysqli_query($con, "SELECT * FROM blog WHERE id BETWEEN 10 AND 12 ORDER BY id DESC");
}
enzo enzo
?>
$p = htmlspecialchars(trim($_GET['p']));
if($p == 0 || !$_GET['p']){
$select = mysqli_query($con, "SELECT * FROM blog WHERE id BETWEEN 1 AND 3 ORDER BY id DESC") or die("FOUT: ".mysqli_error($con));
}
elseif($p == 1){
$select = mysqli_query($con, "SELECT * FROM blog WHERE id BETWEEN 4 AND 6 ORDER BY id DESC");
}
elseif($p == 2){
$select = mysqli_query($con, "SELECT * FROM blog WHERE id BETWEEN 7 AND 9 ORDER BY id DESC");
}
elseif($p == 3){
$select = mysqli_query($con, "SELECT * FROM blog WHERE id BETWEEN 10 AND 12 ORDER BY id DESC");
}
enzo enzo
?>
Zoals je ziet is dit niet handig :D.
Alvast bedankt!
Mvg,
Nick
Dat heet pagination, zoek even daarop met google.
Even al wat voorbereidend:
Even al wat voorbereidend:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$itemsPerPage = 5; //iets wat je zelf vaststeld
//het bepalen van het totale aantal:
$rsTot = mysqli_query($con, 'SELECT COUNT(*) FROM blogs');
$rowTot = mysqli_fetch_row($rsTot);
$totalItems = $rowTot[0];
$currentPage = (isset($_GET['p'])) ? (int) $_GET['p'] : 1;
$start = $itemsPerPage * ($currentPage -1);
$sql = "SELECT columns_names FROM blog ORDER BY post_date LIMIT $start, $itemsPerPage";
?>
$itemsPerPage = 5; //iets wat je zelf vaststeld
//het bepalen van het totale aantal:
$rsTot = mysqli_query($con, 'SELECT COUNT(*) FROM blogs');
$rowTot = mysqli_fetch_row($rsTot);
$totalItems = $rowTot[0];
$currentPage = (isset($_GET['p'])) ? (int) $_GET['p'] : 1;
$start = $itemsPerPage * ($currentPage -1);
$sql = "SELECT columns_names FROM blog ORDER BY post_date LIMIT $start, $itemsPerPage";
?>
Heb je mischien een kleine uitleg er bij?
wat wat doet enzo.
wat wat doet enzo.
Die functies kan je al eenvoudig vinden op php.net/functienaam, dus bijv. www.php.net/mysqli_fetch_row.
Die $currentpage is een verkortte if-else versie: Er wordt gekeken of $_GET['p'] bestaat, zo ja dan gebruikt hij die waarde, en zo niet dat gebruikt hij de waard 1. En dat wordt opgeslagen in $currentpage.
Die $currentpage is een verkortte if-else versie: Er wordt gekeken of $_GET['p'] bestaat, zo ja dan gebruikt hij die waarde, en zo niet dat gebruikt hij de waard 1. En dat wordt opgeslagen in $currentpage.
Is dit het totale script dat je nodig hebt?
Nee, het is een aanzet hoe je pagination kunt opbouwen.
Als je zoekt op php pagination kom je heel veel voorbeelden tegen.
Maar de meeste hebben de neiging om eerst alle records op te halen alleen maar om te bepalen hoeveel records er te zijn, vandaar het veel betere alternatief.
Als je zoekt op php pagination kom je heel veel voorbeelden tegen.
Maar de meeste hebben de neiging om eerst alle records op te halen alleen maar om te bepalen hoeveel records er te zijn, vandaar het veel betere alternatief.
Je zult natuurlijk ook de navigatie-paginanummers aan moeten maken voor onder of boven de lijst ;-)
Ik heb het allemaal kunnen vinden hartstike bedankt!




