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

  • 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.


  • #2
    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.

    Kommentar


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

      Kommentar


      • #4
        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.

        Kommentar


        • #5
          okay, dann ran ans werk.

          Kommentar


          • #6
            Danke, VOLLTREFFER!!!

            Kommentar

            Lädt...
            X