Vorige en volgende van een artikel!
Ik bekijk in de categorie fruit appels. Maar wil dan de vooruit of achteruit kunnen.
120 Grany Smith - Appels
123 JonaGold - Appels
124 Piere - Peren
127 Belle - Appels
Nu bekijk ik appel 123 de jonagold maar wil dan op de website kunnen kiezen voor vorige (120) en volgende (127)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$sql = "SELECT id, productnaam, genre_id FROM producten WHERE genre_id = '2'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Naam: " . $row["productnaam"]. "<br>";
}
} else {
echo "0 results";
}
?>
$sql = "SELECT id, productnaam, genre_id FROM producten WHERE genre_id = '2'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Naam: " . $row["productnaam"]. "<br>";
}
} else {
echo "0 results";
}
?>
Gewijzigd op 20/07/2017 20:20:57 door Kees Mulder
Het is een kwestie van URL parameters uitlezen, query limiteren en berekenen hoeveel pagina's er moeten zijn met een simpele deling.
Je kan dit op twee manieren realiseren. Of je maakt een url op de pagina met het volgende id aan en dmv een $_GET[''] haal je dit weer op en verwerk je dit in je query. Je moet nog wel eerst je id escapen maar dat heb ik even weggelaten.
bijv:
Code (php)
1
2
3
2
3
<?php
$sql = "SELECT id, productnaam, genre_id FROM producten WHERE genre_id = '" . $_GET['id'] . "'";
?>
$sql = "SELECT id, productnaam, genre_id FROM producten WHERE genre_id = '" . $_GET['id'] . "'";
?>
Of je maakt een query met een startpoint en laat zo de aantal item's per pagina zien. Zo werk php pagination zoals -Ariën- zegt.
Code (php)
1
2
3
2
3
<?php
$sql = "SELECT id, productnaam, genre_id FROM producten LIMIT {$startpoint},{$per_page}";
?>
$sql = "SELECT id, productnaam, genre_id FROM producten LIMIT {$startpoint},{$per_page}";
?>
Een makkelijk uitleg vind ik deze pagina: http://codingcyber.com/simple-pagination-script-php-mysql-5882/
Daarnaast loont het misschien de moeite om expliciet een aparte tabelkolom voor volgorde te maken en daar op te sorteren, want de volgorde van invoeren in de database is (zelden?) niet altijd de volgorde waarin je zaken wilt weergeven en dit geeft je in ieder geval de mogelijkheid/flexibiliteit om de volgorde te veranderen zonder enge dingen te doen met identificerende attributen (id's).