Problem mit for schleife
Grobie
- php
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
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
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
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