Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP/Javascript]Beginnersvraag - lastige dubbele while loop

Annie
3 antwoorden
  • 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()
    ";


    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 ")
    ";
    $i++;

    echo "combo" . $teller . "[$i]";
    echo "=";
    echo "new Option";
    echo "(\"Terug naar fotoalbums\"";
    echo ", \"\"";
    echo ")
    ";
    }
    }

    ?>
    [/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.
  • 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','');
    ";
    }

    $combo = $rij["faid"];
    echo "var combo", $combo, " = new Array();
    ";
    }

    echo "combo", $combo, "[combo",$combo,".length] = ";
    echo "new Option('", $fid, $type, "','", $fid, $type, "');
    ";
    }
    ?>
    [/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.
  • 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.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.