Grobie: Problem mit for schleife

hi,

ich habe ein Problem. ich habe ein forumlar, in dem man sowohl text eintragen kann, als auch 4 imgs uploaden kann. wenn man das ganze bearbeitet, guckt das script, ob erneut irgendeins der 4 imgs hochgeladen wurden, wenn nicht, holt er sich die alten namen aus der mysqltabelle und schreibt sie erneut rein. wenn ja, fügt er das bild ein und schreibt den neuen namen ind die mysqltabelle ein. soweit so gut. nun habe ich aber das problem, dass er beim abholen den eintrag vom 1. img nicht holt. ich weiß nicht warum. guckt euch das malbitte an.

for ($n=1; $n<=4; $n++)
{
$screen_nummer = 'screen' . $n;
if ($$screen_nummer != "none")
{
neue datei wird verschoben und so weiter
}
else
{
$abholung = @mysql_query("SELECT Screen1, Screen2, Screen3, Screen4 WHERE ....");
$zeile = @mysql_fetch_array($abholung);
$array = array("screen1" => $zeile['Screen1'], "screen2" => $zeile['Screen2'], "screen3" => $zeile['Screen3'], "screen4" => $zeile['Screen4']);
extract($array, EXTR_OVERWRITE);
$screen_nummer = 'screen' . $n;
$screen[$n] = $$screen_nummer;
}
}

Screen1 ist von anfang definiert, durch das forular, in dem es <input name="screen1" type="file" accept="image/jpeg"> (analog bis screen4) gibt.

ich bedanke mich für alle lösungsvorschläge.

Grobie

  1. Hallo Grobie!

    nun habe ich aber das problem, dass er beim abholen den eintrag vom 1. img nicht holt. ich weiß nicht warum. guckt euch das malbitte an.

    $screen_nummer = 'screen' . $n;

    Wie greifst Du denn auf die Variablen aus dem Formular zu?

    Falls du es bisher, so wie es für mich in Deinem Codeausschnitt aussieht, direkt über $Variablenname sein sollte, rate ich dir, das doch besser anders zu machen.

    Lies Dir dazu am besten mal http://www.php.net/manual/de/language.variables.predefined.php bzw. http://www.php.net/manual/en/language.variables.predefined.php durch (Für Dein "Problem" sollte http://www.php.net/manual/en/reserved.variables.php#reserved.variables.files der richtige sein, zumindest, was die Bilder betrifft).

    MfG
    Götz

    --
    Losung und Lehrtext für Freitag, 7. November 2003
    Unsre Missetat drückt uns hart; du wollest unsre Sünde vergeben. (Psalm 65,4)
    Jesus sprach: Der Frau sind ihre vielen Sünden vergeben, denn sie hat viel Liebe gezeigt; wem aber wenig vergeben wird, der liebt wenig. (Lukas 7,47)
    (http://www.losungen.de/heute.php3)
    1. Hi Götz,

      also ich danke für die antwort, allerdings verstehe ich noch nicht, was das mit meinem problem zu tun hat. Ich habe das ganze in

      if ($_FILES[$screen_nummer]["tmp_name"] != "none")

      geändert. oder meintest du was anderes. tut mir leid, hocke nun so lange vor diesem code, vielleicht sehe ich da manches einfach nicht mehr :D danke aber für jede weitere hilfe.

      Grobie

      1. Hallo Grobie!

        Die Antwort hatte an sich nicht soo viel mit der Frage zu tun, das stimmt.
        Doch sollte man imho in PHP lieber die Superglobals nutzen, als auf registerglobals zu setzen.

        if ($_FILES[$screen_nummer]["tmp_name"] != "none")

        Genau so meinte ich das.
        Was ich mich jedoch frage:
        Wann steht in dieser Variablen 'none'?

        Ansonsten seh ich in dem Code auch keinen Fehler.
        Aber, wenn _nur_ das erste Bild nicht korrekt verarbeitet wird, kann der komplette Code ja nicht falsch sein.
        Bau Dir doch mal ein paar Debugging Ausgaben rein, vielleicht hilfts.
        Zum thema Debugging kannst dir ja auch mal xdebug (http://www.xdebug.org/) anschauen, vielleicht bringt Dich das ja weiter.

        MfG
        Götz

        --
        Losung und Lehrtext für Samstag, 8. November 2003
        Ich bin der Herr, und sonst keiner mehr, der ich das Licht mache und schaffe die Finsternis, der ich Frieden gebe und schaffe Unheil. Ich bin der Herr, der dies alles tut. (Jesaja 45,6-7)
        Jesus betet: Mein Vater, ist's möglich, so gehe dieser Kelch an mir vorüber; doch nicht wie ich will, sondern wie du willst! (Matthäus 26,39)
        (http://www.losungen.de/heute.php3)