Variable trennen

Du hast Getränke.
Es können bei einer Bestandsaufnahme (die in die Datenbank geschrieben werden soll und nicht darausgeholt werden soll) neue Produkte Getränke hinzukommen.
Direkt bei der Bestandsaufnahme sollen keine neuen Produkte dazukommen - Diese werden über ein anderes Formular angelegt!

Die Verpackungseinheit für ein Getränk ist immer die gleiche (also LieblingsBier gibts immer in 20ger Kästen).
Man soll angeben können: Ich habe ein MineralwasserXY und davon habe ich 3x die Verpackungseinheit? Oder soll man sagen können ich habe 3x die Verpackungseinheit und 7x die Einzelanzahl, also 3 Kästen und 7 Flaschen?
Ganz genau. Mein Eingabeformular gibt bspw. vor BierXYZ - Flaschen: ___ - Kästen: ____
Die Produkte welche in dem Formular angezeigt werden kommen aus der Datenbank.
 
Und, worauf einfach nur crack glaube ich hinaus will wäre:
HTML:
<form method="post" action="">
  <input type="text" name="produkt[1][anzahl]" value="45" />
  <input type="text" name="produkt[1][verpackungseinheitOderEinzelstücke]" value="2" />
  <!-- ... -->
  <input type="text" name="anderes_feld" value="..." />
</form>

Das wäre dann das Array für das Produkt mit der ID 1. Es würde auch in php genauso als array abgebildet werden, wie man es vermutet. also mit $_POST['produkt'][1]['anzahl'] würde man 45 bekommen.

LG



Edit:

Dann mach es doch so:


HTML:
<form method="post" action="">
  <input type="text" name="produkt[1][stueckzahl]" value="45" />
  <input type="text" name="produkt[1][verpackungszahl]" value="7" />
  <!-- ... -->
  <input type="text" name="anderes_feld" value="..." />
</form>

Und in php dann:

Code:
foreach( $_POST['produkt] as $produktId => $produktArray ) {
  $produktArray['stueckzahl'];
  $produktArray['verpackungszahl'];
}

PS: Achtung, vor dem in die Datenbank schreiben noch auf SQL-Injection achten.
 
Zuletzt bearbeitet:
Ohne jetzt deinen Beitrag vollständig gelesen zu haben: du hast doch gesagt, dass die Werte aus der Superglobalen $_POST kommt. Somit ist dir an dieser Stelle egal, ob das Formular aus Daten aus einer Datenbank generiert wurde oder anderweitig. Somit wäre es interessant zu sehen, wie dein Formular aussieht (vom Quelltext her). Denn ich meinte, dass du dein Problem so löst:
HTML:
<form method="post" action="">
  <input type="text" name="wert_mit_bindestrich[1-1]" value="45" />
  <input type="text" name="wert_mit_bindestrich[1-2]" value="54" />
  <!-- ... -->
  <input type="text" name="anderes_feld" value="..." />
</form>

Naja. Im Grunde habe ich die produkt_id und die verpackungs_id - Mein Formular schaut also so aus

HTML:
<p>$produktname</p>
<input ... name="<? $produkt_id ?>-1" value="EZ" />
<input ... name="<? $produkt_id ?>-2" value="VE" />
 
Und, worauf einfach nur crack glaube ich hinaus will wäre:
HTML:
<form method="post" action="">
  <input type="text" name="produkt[1][anzahl]" value="45" />
  <input type="text" name="produkt[1][verpackungseinheitOderEinzelstücke]" value="2" />
  <!-- ... -->
  <input type="text" name="anderes_feld" value="..." />
</form>

Das wäre dann das Array für das Produkt mit der ID 1. Es würde auch in php genauso als array abgebildet werden, wie man es vermutet. also mit $_POST[1]['anzahl'] würde man 45 bekommen.

LG



Edit:

Dann mach es doch so:


HTML:
<form method="post" action="">
  <input type="text" name="produkt[1][stueckzahl]" value="45" />
  <input type="text" name="produkt[1][verpackungszahl]" value="7" />
  <!-- ... -->
  <input type="text" name="anderes_feld" value="..." />
</form>

ahh. Ok ich wusste gar nicht dass man beim $_post auch mehrdimensional arbeiten kann. Das machts natürlich einfacher ;) Dann mach ich mich mal an die Umsetzung! Danke schonmal!!
 
Zurück