While(list($key, $val) = each ($HTTP_POST_VARS))

Hallo Leuts,

in meinem Admintool bin ich auf folgendes Problem gestoßen:

Es gibt eine Eingabemaske für Artikel. Diese Eingabenmaske steht zuerst nur einmal auf einer Seite. Will der Benutzer nun 5 Artikel gleichzeitig eingeben, dann kann der durch Eingabe der Zahl 5 in das dafür vorgesehene Kästchen, die Eingabemaske 5 mal auf dem Bildschirm ausgeben lassen.

Um diese Daten abspeichern zu können, muß ich die einzelnen Felder „Name, Beschreibung“ unterschiedlich benennen. Dazu habe ich den Wert der Vorschleife „$i“ an das Ende des Namens der Felder angehängt. Z. Bsp.: Name_ echo „$i“; ?>
Dadurch habe ich bewirkt das es jeder Variablenname nur einmal gibt und nicht überschrieben wird.

Um diese Variablen später nochmal aufrufen zu können, verwende ich eine while-Schleife mit folgendem:

while(list($key, $val) = each ($HTTP_POST_VARS)) {
echo „$key = $val“;
}

Durch diese While-Schleife kann ich auf jeden Wert zurückgreifen und ihn in die Datenbank setzen.

Nur bei den Bildern macht er es nicht. Das Bild zu dem Artikel steht nicht in der While-Schleife. Ich hab eaber schon alles durchsucht und es stimmt alles soweit. Das gleiche Script habe ich nochmal geschrieben, aber in einer verkürzten Fassung und noch lange nicht so gut wie das alter und dort geht es.
Kann der Fehler vielleicht an was anderem liegen? Wenn ja an was?

Anbei der Quellcode in verkürzter Fassung:

include(„header.php“);

while (list($key, $val) = each ($HTTP_POST_VARS)) {

if(ereg(„artikelnummer_“,$key)) {
$sql = „INSERT INTO art_v (artid_v, artnr) VALUES(’$artid_v’,’$val’)“;
$result = mysql_query($sql);
$id = mysql_insert_id();
}

if(ereg("$bildklein_$bildnr", $key) && $val != „“) {
copy($key, „images/$id“._.„klein“.".jpg");
}

if(ereg(„bildgross_“, $key) && $val != „“) {
copy($key, „…/…/$ftp/images/$id“._.„gross“.".jpg");
}

$id = $id;
}
?>

<!–
function check() {
var fehler=0;

if(fehler==0) {
document.speichern.submit();
}
}
//–>

Variation - Schritt 2/2

Anzahl:
" ID=„text_2“>

if($anzahl == „“) { $anzahl = 1; }
for($i = 0; $i

Artikelnumamer:
Gewicht:
Preisempf.:
Vk Preis:
Bestand:
Lieferfrist:
Eigenschaften:
">
"> kg
"> €
"> €
"> Stück
" VALUE=„2“> Tag(e)
[’)"CLASS=„nav2“>Variationen zuordnen](javascript:ShowAdress(’<?%20echo%20)
Kleines Bild:

">
Großes Bild:

}
?>

">
">
">
">

<!–
document.speichern.artikelnummer_0.focus();

function ShowAdress(nr) {
var cUrl = „var.php?nr=“ + nr;
var cWindow = window.open(cUrl,„AdressWin“,„width=600,height=440,resizable=yes,scrollbars=yes,status=yes“);
if (!cWindow.opener) cWindow.opener = self;
if (cWindow.focus != null) cWindow.focus();
}
//–>

include(„footer.php“);
?>

tja, das bild steht dann auch in $HTTP_POST_FILES :wink:

Danke schon mal, aber gibt es keine einfachere Lösung dafür.

Danke schon mal, aber gibt es keine einfachere Lösung dafür.

du koenntest die bildervariablen genauso nach dem schema benennen oder das alles mit arrays loesen…

$artikel[][‚name‘]
$artikel[][‚preis‘]
$artikel[][‚bild‘]

und je nachdem wie viele artikel du hast, wird die erste dimension halt groesser …