Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit While-Schleife

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema Problem mit While-Schleife.

    Problem mit While-Schleife

    Hallo Leute,

    ich glaub, im folgenden Code steckt ein Denkfehler, der für mich nicht ersichtlich ist:

    PHP-Code:
            $i 0;
            while(
    $files[] = readdir($dp))
            {
                if(
    $files[$i] == $_REQUEST["image"])
                {
                    
    $a $i-1;
                    
    $b $i+1;
                    
                    echo 
    "<span class=\"headline\">";
                    echo 
    "<img src=\"images/misc/" SYMBOL1 "\" align=\"absmiddle\">";    
                    echo 
    "<u>" $_REQUEST["page"] . "</u></span>(Imagename:" $_REQUEST["image"] . " / Imagesize:$widthx$height/$var)
    "

                    echo 
    "<span class=\"postattribute\">"
                    echo 
    "note: [1] back/forward, [2] picture-index, [3] galery-index"
                    echo 
    "</span>

    "

                    
                    echo 
    "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr>"
                    echo 
    "<td width=\"90\">"
                    
                    
    #Image-back 
                    
    echo $a
                    echo 
    "<a href=\"http://" $host $file "?site=gallery&page=" $_REQUEST["page"] . "&image=" $files[$a] . "\">"
                    echo 
    "<img src=\"images/misc/pointer_left.gif\">"
                    echo 
    "</a>"
                    
                    
    #Image-forward
                    
    echo $b;
                    echo 
    "<a href=\"http://" $host $file "?site=gallery&page=" $_REQUEST["page"] . "&image=" $files[$b] . "\">"
                    echo 
    "<img src=\"images/misc/pointer_right.gif\">"
                    echo 
    "</a>"
                    
                    echo 
    "</td>";
                    
                    
    #Back to picture-index
                    
    echo "<td width=\"65\">"
                    echo 
    "<a href=\"http://" $host $file "?site=gallery&page=" $_REQUEST["page"] . "\" title=\"back to picture-index\">"
                    echo 
    "<img src=\"images/misc/pointer_imgindex.gif\">";
                    echo 
    "</a>"
                    echo 
    "</td>";
                    
                    
    #Back to galery-index
                    
    echo "<td>"
                    echo 
    "<a href=\"http://" $host $file "?site=gallery\" title=\"back to galery-index\">"
                    echo 
    "<img src=\"images/misc/pointer_galindex.gif\">";
                    echo 
    "</a>"
                    echo 
    "</td>"
                    
                    echo 
    "</tr></table>"
                    
                    echo 
    "
    "
    ;
                    echo 
    "<table cellpadding=\"1\" cellspacing=\"0\" border=\"0\" bgcolor=\"#000000\">"
                    echo 
    "<tr><td valign=\"top\" align=\"left\" width=\"100%\">";
                    echo 
    "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" bgcolor=\"#FFFFFF\">"
                    echo 
    "<tr><td valign=\"top\" align=\"left\" width=\"100%\">";
                    echo 
    "<img src=\"images/gallery/" $_REQUEST["page"] . "/" $_REQUEST["image"] . "\">"
                    echo 
    "
    </td></tr></table>"

                    echo 
    "</td></tr></table>"
                }
                
    $i++;
            } 
    Was das sein soll? Stellt euch eine Galerie mit einem Forward/Backward-Button vor. Betätige ich den Backward-Button, zeigt er mir auch das vorhergehende Bild. Betätige ich aber den Forward-Button, zeigt er mir gar keins. Die Variable "image" in der URL "...&image=" bleibt dann leer. Warum eigentlich????

    mfg - h.

  • Gast-Avatar
    Ein Gast antwortete
    Danke, VOLLTREFFER!!!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    okay, dann ran ans werk.

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Du müsstest dafür in der while-Schleife zunächst einmal nur die Dateinamen (plus gegebenenfalls zusätzlich benötigte Informationen) in dem Array abspeichern. Und erst nach dem Durchlauf der while-Schleife, wenn das Array also vollständig erzeugt wurde, kannst du dann die Ausgabe vornehmen.
    Um keine Probleme mit dem Speicher zu bekommen würde ich außerdem nur dann die Dateiinformationen in dem Array speichern, wenn das aktuelle Element innerhalb der while-Schleife entweder das zur Zeit aktuelle bzw. das vorherige oder das nächste Bild ist.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Okay, verstehe, aber wie soll dann der Lösungsweg aussehen? Mir fällt außer dieser Schleife nichts mehr Besseres ein, leider....

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    In dem Moment, in dem du die Links ausgibst, existiert das Arrayelement mit dem nächsten Schlüssel noch gar nicht. Du müsstest das Array also erst komplett erzeugen und dann erst das aktuelle Bild ausgeben.

    Einen Kommentar schreiben:

Lädt...
X