speichern 6 invoce Produkte von einer Website über eine form method="post"
, verwende ich mehrere Eingabeelemente wie diesePDO/mySQL Wie mehrere Werte zu binden, mehrere Zeilen speichern
<input name="item[]" value="6 hour service"/>
<input name="item[]" value="1 days travel"/>
....
Server kopieren I $ _POST [ ‚Item‘ ] auf ein Array wie diese
item[]= $_POST['Item'];
Dann kann ich Artikel [] zugreifen und es sieht aus wie dieses
[item] => Array
(
[0] => 6 hour service
[1] => 1 days travel
[2] => ....
)
Dann folgt diese SQL-Anweisung
try {
$obj = $this->dbcon->prepare('INSERT INTO invoice_item
(ID, item)
VALUES(:ID,:item)');
for ($i=0;$i<6;$i++) {
if (!empty($item[0][$i])) {
$obj->bindValue(':ID', $this->dbcon->lastInsertId(), PDO::PARAM_INT);
$obj->bindValue(':item', $item[0][$i], PDO::PARAM_STR);
$succ = $obj->execute();
}
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
Dies funktioniert für eine feste Anzahl von Elementen.
Aber was ist der richtige Weg, um auf $ _POST zuzugreifen, es zu binden und es zu speichern, wenn die Anzahl der Elemente nicht bekannt ist?
EDIT:
Wie über $ _POST [ "Item"] direkt iterieren?
-> lastInsertId() ist aus einer vorherigen Tabelle, die ich später beziehen muss – Ben