While, While, werkt niet??!

Status
Niet open voor verdere reacties.

tiener

Gebruiker
Lid geworden
22 mei 2006
Berichten
145
hey ik heb een vraagje, als ik de onderstaande code upload, geeft hij 6 rijen, achter de 6 titels staat iedere keer een optie balkje. de 1e rij geeft de opties 1 t/m 6.
de volgende rijen geven opeens geen opties meer? hoe komt dat, wat doe ik fout?

PHP:
echo'<div id="div-hoofd"><form action="" method="post"><table>';

while($row = mysql_fetch_array($mquery)) {

echo '<tr><td><a href="index.php?pagina=content&id='.$row["id"].'">'.$row["titel"].'</a></td><td><select name="'.$row["id"].'">';

while ($gb = mysql_fetch_array($mquery2)) { $nummer++; echo'<option>'.$nummer.'</option>'; } 
$nummer = 0;

echo '</select></td></tr>';

}

echo '<tr><td><input name="s_nummers" type="submit" value="Verzend!" /></td></tr></table></form></div>';
 
Is het de bedoeling van de 2e loop dat iedere keer dezelfde informatie gegeven wordt?

Want ik zie binnen loop 1 niet $mquery2 gezet worden.

Als je steeds hetzelfde wilt, dan is het probleem dat mysql_fetch_array() niet alleen een rij ophaalt, maar die rij ook uit het geheugen gooit... dus als je de lijst 1x doorgelopen hebt, dan is hij uitgeput en komen er geen resultaten meer.

De oplossing is om van tevoren alle resultaten op te halen, en die in een array te stoppen.

Vervolgens loop je in iedere interne while{} lus over die array heen, dan blijven de resultaten bestaan voor de volgende keer dat de eerste lus er langs komt.
 
Frats, bedankt voor je reactie!

meot het dan zoiets als het volgende zijn?
of moet het anders.

ik ben nog een beginner en ben het aan het leren dus ben niet zo goed met manieren die ik nog nooit gezien heb:confused:

alvast bedankt!

PHP:
echo'<div id="div-hoofd"><form action="" method="post"><table>';

$row = mysql_fetch_array($mquery);

while($row2 = array(row)) {

echo '<tr><td><a href="index.php?pagina=content&id='.$row["id"].'">'.$row["titel"].'</a></td><td><select name="'.$row["id"].'">';

while ($gb = array($row) { $nummer++; echo'<option>'.$nummer.'</option>'; } 
$nummer = 0;

echo '</select></td></tr>';

}

echo '<tr><td><input name="s_nummers" type="submit" value="Verzend!" /></td></tr></table></form></div>';
[/QUOTE]
 
Je kunt op deze manier eerst de resultaten van de query opslaan: (voor de eerste while)
PHP:
$lijst = array();
while ($row = mysql_fetch_array($mquery2))
{
    $lijst[] = $row;
}

En je tweede loop bijvoorbeeld op de volgende manier aanpassen:
PHP:
$nummer = 0; 
foreach ($lijst as $gb) { $nummer++; echo '<option>'.$nummer.'</option>'; }
 
Huh ik heb iets dat werkt?! weet nog niet waarom maar als ik dat
Code:
if($nummer <= mysql_num_rows($mquery)){
wegliet ging hij tot 10 ofzo??? terwijl er 6 rijen in me db staan.
maar eht werkt iig zo :thumb:

supper bedankt voor jullie hulp, ben er zeker verder mee gekomen! Als jullie me nog kunnen uitleggen wat ik niet snap graag, ik probeer het nog te leren!!

Groetjes Gijs.

(Werkende code:)
PHP:
$lijst = mysql_fetch_array($mquery2); 
while ($row = mysql_fetch_array($mquery)) 
{ 
echo '<tr><td><a href="index.php?pagina=content&id='.$row["id"].'">'.$row["titel"].'</a></td><td><select name="'.$row["id"].'">';

$nummer = 0;  
foreach ($lijst as $gb) { $nummer++; if($nummer <= mysql_num_rows($mquery)){ echo '<option>'.$nummer.'</option>';} }

echo '</select></td></tr>';

}

echo '<tr><td><input name="s_nummers" type="submit" value="Verzend!" /></td></tr></table></form></div>';
 
Op de helpmij chat heeft iemand me al verder geholpen! ik weet wta ik fout doe. ik gebruik nu een iets anders script (wat netter), maar bovenstaand script werkt ook!

Super bedankt allemaal!

Vraag is opgeost.

Groetjes Gijs.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan