Ik ben nieuw op dit forum en heb een vraag over pagina navigatie.
Er worden een aantal resultaten uit de database gehaald en het is de bedoeling dat ik maximaal 20 records per pagina te zien krijg. Onder alle records staat dan een linkje met Vorige en Volgende om tussen de pagina's te navigeren.
de pagina navigatie werkt goed alleen onder alle records en de linkjes met vorige en volgende, wordt steeds weer een tabel geprint. Het lijkt wel of deze pagina in een oneindige lus zit.
misschien is er iemand die kan helpen.
hier het script.
<?php
$Categorie = 'xxxxxx';
mysql_connect ("xxxxxxxx","xxxxxxxx","xxxxxxxx")or die (mysql_error());
mysql_select_db("xxxxxxxx")or die (mysql_error());
$query = mysql_query ("SELECT * FROM opdrachten_gegevens WHERE Categorie = '$Categorie' ORDER BY Opdracht_ID ")or die (mysql_error());
$result = mysql_query("SELECT * FROM opdrachten_gegevens WHERE Categorie = '$Categorie' ORDER BY Opdracht_ID ")or die (mysql_error());
$page = (!isset($_GET['page'])) ? 1 : $_GET['page'];
//aantal records per pagina
$max = 20;
$start = ($max * $page) - $max;
//hier je gegevens van je mysql ophalen
while($var = mysql_fetch_array(mysql_query("SELECT * FROM opdrachten_gegevens WHERE Categorie = '$Categorie' ORDER BY Opdracht_ID LIMIT " . $start . ", " . $max . ""))) {
echo"<center>";
echo "<table border='1' BORDERCOLOR =#3ADF00>
<tr>
<th>xxxxxx</th>
<th>xxxxxx</th>
<th>xxxxxx</th>
<th>xxxxxx</th>
<th>xxxxxx</th>
<th>xxxxxx</th>
<th>xxxxxx</th>
<th>xxxxxx</th>
<th>xxxxxx</th>
Zorg er eerst even voor dat het door het inspringen duidelijk is wat er binnen je while loops valt.
Waar eindigt bv de While-loop die je op tegen 20 start?
En volgens mij eindig je op regel 61 de while-loop die je op regel 38 start. Je sluit hier door heel vaak een table, echter deze open je niet binnen deze while. (Waardoor je veel vaken een table sluit dan opent)
Zodra je je code correct hebt ingespronken, verwacht ik dat je al ziet waar het probleem exact zit
Kijk hier eens naar, paar dingen aangepast en omgegooid
<?php
//variabelen beginnen met een kleine letter
$categorie = 'xxxxxx';
mysql_connect ("xxxxxxxx","xxxxxxxx","xxxxxxxx")or die (mysql_error());
mysql_select_db("xxxxxxxx")or die (mysql_error());
//aantal records per pagina
$max = 20;
$page = (!isset($_GET['page'])) ? 1 : $_GET['page'];
$start = ($max * $page) - $max;
//query maar 1x nodig.
//Tevens limit toegevoegd
//Liever geen tabelnamen met een hoofdletter
$result = mysql_query(" SELECT
*
FROM
opdrachten_gegevens
WHERE
Categorie = '{$categorie}'
LIMIT
($start},{$max}
ORDER BY
Opdracht_ID ")or die (mysql_error());
//html tag <center> is outdated
echo"<center>";
//Begin nieuwe tabel
echo "<table border='1' BORDERCOLOR =#3ADF00>";
//Afsluiten van tabel buiten de while gehaald
echo "</table>";
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//hier aan jou mysql gegevens aanpassen
//Categorie toegevoegd
$rows = mysql_result(mysql_query("SELECT COUNT(Opdracht_ID) FROM opdrachten_gegevens WHERE Categorie = '{$categorie}' ORDER BY Opdracht_ID"),0);
$pages = ceil($rows / $max);
ik heb eigenlijk nog een vraag m.b.t de pagina navigatie. Als ik de Categorie in het script via een formulier inzend Krijg ik alleen records op de eerste pagina en niet op de 2e pagina. voor de rest werkt het allemaal prima, dus alleen geen records op de tweede pagina.
is er iemand die weet hoe dit opgelost kan worden ??.
//Afsluiten van tabel buiten de while gehaald
echo "</table>";
//hier aan jou mysql gegevens aanpassen
//Categorie toegevoegd
$rows = mysql_result(mysql_query("SELECT COUNT(Opdracht_ID) FROM opdrachten_gegevens ORDER BY Opdracht_ID"),0);
$pages = ceil($rows / $max);