Ga naar inhoud

[PHP/Javascript]Beginnersvraag - lastige dubbele while loop


anoniem

Aanbevolen berichten

Ik wil dit in m'n echo/uitvoer bereiken: var combo3=new Array() combo3[0]=new Option("1.jpg", "1.jpg") combo3[1]=new Option("45.jpg", "45.jpg") combo3[2]=new Option("9.jpg", "9.jpg") combo3[3]=new Option("Terug naar fotoalbums", "") var combo7=new Array() combo7[0]=new Option("7.jpg", "7.jpg") combo7[1]=new Option("5.jpg", "5.jpg") combo7[2]=new Option("Terug naar fotoalbums", "") Deze script gebruik ik ervoor maar het wil nog niet helemaal lukken en ik zie de fout niet snel: [code:1:930ca8707d] <? $sql = "select * from afbeelding"; $resultaat = mysql_query($sql)or die("FOUT:" . mysql_error()); $rij=mysql_fetch_array($resultaat); while($rij=mysql_fetch_array($resultaat)) { $i=0; $teller=$rij["faid"]; echo "var combo" . $teller . "=new Array()\n"; while($rij=mysql_fetch_array($resultaat)) { $teller=$rij["faid"]; $fid=$rij["fid"]; $type=$rij["bestandstype"]; echo "combo" . $teller . "[$i]"; echo "="; echo "new Option(\"" . $rij["fid"] . "" . $rij["bestandstype"] . "\""; echo ", "; echo '"'.$fid.$type.'"'; echo ")\n"; $i++; echo "combo" . $teller . "[$i]"; echo "="; echo "new Option"; echo "(\"Terug naar fotoalbums\""; echo ", \"\""; echo ")\n"; } } ?> [/code:1:930ca8707d] Dit is de uitvoer: var combo3=new Array() combo3[0]=new Option("1.jpg", "1.jpg") [b:930ca8707d]---->> hier blijft het steken terwijl er meer rijen zijn. [/b:930ca8707d] combo3[1]=new Option("Terug naar fotoalbums", "") [b:930ca8707d]De overige "var combo's" met "sub combo's" komen niet eens in beeld. [/b:930ca8707d] Met deze javascript wil ik alle fotos uit diverse fotoalbums in een rij krijgen. Alleen wil ik dus alle afbeeldingen per fotoalbum in een 'var combo' array onder elkaar krijgen.
Link naar reactie
Ik zie dat je meerdere malen door dezelfde resultset looped; dat werkt inderdaad niet zoals je zou willen. Ik vermoed dat je data zo in elkaar zit dat onderstaande meer in de buurt komt. Maar het blijft natuurlijk een blinde gok. Mocht het niet doen wat je voor ogen had, dan zal je even de structuur (en voorbeeld van inhoud) van je database table moeten geven. [code:1:fa8ac429ac] <?php $sql = "select * from afbeelding"; $resultaat = mysql_query($sql) or die("FOUT:" . mysql_error()); $combo = -1; while ($rij = mysql_fetch_array($resultaat)) { $fid = $rij["fid"]; $type = $rij["bestandstype"]; if ($combo != $rij["faid"]) { if ($combo != -1) { echo "combo", $combo, "[combo",$combo,".length] = "; echo "new Option('Terug naar fotoalbums','');\n"; } $combo = $rij["faid"]; echo "var combo", $combo, " = new Array();\n"; } echo "combo", $combo, "[combo",$combo,".length] = "; echo "new Option('", $fid, $type, "','", $fid, $type, "');\n"; } ?> [/code:1:fa8ac429ac] Succes. p.s. de code is uit de losse pols en ongetest! En aangezien ik al tijden niets meer in php doe, kan er dus wel een foutje binnensluipen, maar dat moet makkelijk te debuggen zijn.
Link naar reactie
Hardstikke bedankt de combo tussen de haakjes was trouwens een tellertje [code:1:c930f651ea]$sql = "select * from p_afbeelding order by faid"; $resultaat = mysql_query($sql) or die("FOUT:" . mysql_error()); $combo = -1; while ($rij = mysql_fetch_array($resultaat)) { $fid = $rij["fid"]; $type = $rij["bestandstype"]; if ($combo != $rij["faid"]) { if ($combo != -1) { echo "combo", $combo, "[$i] = "; echo "new Option('Terug naar fotoalbums','');<br><br>"; } $i=0; $combo = $rij["faid"]; echo "var combo", $combo, " = new Array();<br>"; } echo "combo", $combo, "[$i] = "; echo "new Option('", $fid, $type, "','", $fid, $type, "');<br>"; $i++; } [/code:1:c930f651ea] Ik krijg dit als uitvoer [code:1:c930f651ea]var combo3 = new Array(); combo3[0] = new Option('1.jpg','1.jpg'); combo3[1] = new Option('2.jpg','2.jpg'); combo3[2] = new Option('Terug naar fotoalbums',''); var combo5 = new Array(); combo5[0] = new Option('38.jpg','38.jpg');[/code:1:c930f651ea] Alle rijen zijn zichtbaar :) Alleen valt de "comboX[X] = new Option('Terug naar fotoalbums','');" weg in de aller laatse combo variabele zoals in de bovenstaande uitvoer te zien is.
Link naar reactie
[quote:25cf661c51="sjemmie"]Alle rijen zijn zichtbaar :) Alleen valt de "comboX[X] = new Option('Terug naar fotoalbums','');" weg in de aller laatse combo variabele zoals in de bovenstaande uitvoer te zien is.[/quote:25cf661c51] Dat is simpel op te lossen door buiten je while loop deze alsnog toe te voegen (mits er minimaal 1 comboX regel is afgedrukt).
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...