1 van de 2 while loops werkt niet
$resultx = mysql_query("SELECT * FROM dbx");
$resulty = mysql_query("SELECT * FROM dby");
while ($row_x = mysql_fetch_array($resultx)) {
// hier doet ie iets
while ($row_y = mysql_fetch_array($resulty)) {
// hier doet ie iets anders
}
}
De loops zijn nagenoeg identiek maar toch functioneren ze anders. De tabel dbx bevat dus meerdere records maar de loop kijkt uitsluitend naar het eerste.
Iemand een idee hoe dit kan?
Kijk daarna ook eens naar mysqli ipv mysql.
Als ik mysqli hanteer doet het script helemaal niets meer. Ook geen foutmelding maar krijg geen data meer uit de tabellen...
Toevoeging op 09/08/2016 17:02:21:
Heb de eerste while vervangen door een foreach-loop op basis van een array. Als ik de loop laat uitvoeren zonder de twee loop (dus zonder while) dan loopt ie alle records uit dbx door. Zodra ik de while loop inzet (uit dby) dan wordt de foreach-loop direct gestopt na het eerste record. Dit gebeurde dus ook precies toen beide loops nog whiles waren op basis van dbx en dby.
Kortom: gebruik van foreach o.b.v. array ipv while statement o.b.v. database maakt geen donder uit. In beide gevallen stopt ie met elke loop als de while loop van dby gestart wordt.
Als ik de eerste loop helemaal achter wegen laat dan toont ie keurig alle records van dby
Als ik de tweede loop helemaal achter wegen laat dan toont ie keurig alle records van dbx
Snap er niets van!
Plaats "$resulty = mysql_query("SELECT * FROM dby");" eens tussen de twee while-loops.
De tweede while zal slechts 1 keer doorlopen worden en dat gebeurt tijdens de eerste while bij het eerste record.
Toevoeging op 09/08/2016 17:51:00:
SanThe, hoe komt dat? Waarom kun je die tweede while niet een x-aantal keren uit laten voeren?
Hanno Weima op 09/08/2016 17:48:37:
SanThe, hoe komt dat? Waarom kun je die tweede while niet een x-aantal keren uit laten voeren?
Dan moet je het zo doen:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$resultx = mysql_query("SELECT * FROM dbx");
while ($row_x = mysql_fetch_array($resultx))
{ // hier doet ie iets
$resulty = mysql_query("SELECT * FROM dby");
while ($row_y = mysql_fetch_array($resulty))
{ // hier doet ie iets anders
}
}
?>
$resultx = mysql_query("SELECT * FROM dbx");
while ($row_x = mysql_fetch_array($resultx))
{ // hier doet ie iets
$resulty = mysql_query("SELECT * FROM dby");
while ($row_y = mysql_fetch_array($resulty))
{ // hier doet ie iets anders
}
}
?>
http://php.net/manual/en/mysqli-result.data-seek.php nog een oplossing.
Als je niet elke keer 'andere' gegevens opvraagt maar elke keer dezelfde, is misschien