Als de output van een sql query honderden resultaten geeft, hoe kan ik dan zorgen
dat er bijv. max 25 per blz worden weergegeven?
Jammer dat je niet eerst op Google hebt gekeken en je vraag gewoon hier stelde..
Dit noemt men een pagination, als je op google zoekt op PHP pagination o.i.d. dan zul je zeker goede voorbeelden tegenkomen. Meestal krijg je dan de volgende constructie:

1. Je hebt in de URL een paginanummer (bijv: www.mijnwebsite.nl/artikelen.php?page=1). Dit paginanummer kun je d.m.v. GET uit de URL halen.
2. Vervolgens moet je bepalen welke data er bij dit pagina nummer hoort. Bij 1 wil je de eerste 25 records ophalen, dit kun je met een LIMIT in je query voor elkaar krijgen. Bij 2 haal je 25 t/m 50 op etc.
3. Als laatste wil je knoppen laten zien naar de vorige/volgende pagina. Hier kom je denk ik wel uit.
en om een standaard fout vast af te vangen:

als de eerste pagina LIMIT 0,25 bevat, dan bevat de tweede niet LIMIT 25, 50
maar 25, 25
Hier loop ik ook vast.
Ik heb mooi voorbeeld gevonden, bladzijde 1 werkt, de rest niet. Ik heb me suf gegoogled
want ik dacht eerst dat het aan m'n voorbeeld lag, dat er ene fout inzat, was ik helemaal opnieuw begonnen met ander voorbeeld, die had zelfde probleem (blond ja) het is iets met GET maar wat PRECIES en hoe ik het op moet lossen dat begrijp ik dan weer niet want er staat gewoon GET, iets anders kan ik er niet van maken. Hij onthoudt de invoer niet, ofzo...
Stukje relevante code posten misschien?
Nu moeten we de glazen bol weer uit de kast halen.
PHP Maarten op 27/12/2015 18:09:52

Jammer dat je niet eerst op Google hebt gekeken en je vraag gewoon hier stelde..

Beetje kort door de bocht. Iedereen is gewoon vrij om hier een vraag te stellen. Daar is dit forum voor bedoeld.
- SanThe - op 17/01/2016 23:58:37


Nu moeten we de glazen bol weer uit de kast halen.


:)
ik ga eerst alles vermysqli-en, eerder durf ik hier niks meer te posten
en aangezien ik daarin ook vastloop (whaa het zal niet) ben ik nog wel ff bezig, vrees ik

dus even geduld aub, wordt vervolgd

1. Je hebt in de URL een paginanummer (bijv: www.mijnwebsite.nl/artikelen.php?page=1). Dit paginanummer kun je d.m.v. GET uit de URL halen.


Ik snap nu waarom GET steeds niet werkt, ik heb geen paginanummer in de url, het eindigt gewoon op .php

In het geval dat er geen pagina nummer is opgegeven, of verwezen wordt naar het script zelf zonder enige GET-parameters, loont het om in dit geval de eerste aantal items te tonen.
Ok, ik heb alles nu omgezet naar mysqli. Maar de paginatie wil niet lukken.
<?php
require_once "config.php";
$reclimit = 3;

if(isset($_GET['page'])){
$page = $_GET['page'];
} else {
$page = 1;
}

$start = (($page-1) * $reclimit);
// if(isset($_POST['Kleur'])){ $Kleur = $_POST['Kleur'];
// $Kleur= "wit";

// if(isset($_GET['Kleur'])){ $Kleur = $_GET['Kleur'];
// } else {echo "Geen geldige invoer";
// }
$sql = "SELECT * FROM katten WHERE Kleur = '$Kleur'";
$records = $conn->query($sql);
$total = $records->num_rows;
$tpages = ceil($total / $reclimit);
$rec = "SELECT * FROM katten WHERE Kleur = '$Kleur' ORDER BY Nummer DESC LIMIT $start, $reclimit";
$records = $conn->query($rec);
while($row = $records->fetch_array()) {
echo "<tr>";
echo "<td>".$row['Nummer']."</td>";
echo "<td>".$row['Naam']."</td>";
echo "<td>".$row['Kleur']."</td>";
echo "<td>".$row['Url']."</td>";
echo "</tr>";
}

mysqli_close($conn);


for($i=1;$i<=$tpages;$i++) {
echo "<li><a href=kleur.php?page=".$i.">".$i."</a></li>";
}
?>
Als ik $Kleur invul gaat het goed, maar zowel met met $_POST als $_GET "vergeet" hij de Kleur als ik verder blader dan de 1e pagina. Wat doe ik nou verkeerd?
(nb op de eerste blz staat in de url: kleur.php?page=wit
en de tweede: kleur.php?page=2)

Reageren