cc7162: Mehrere Arrays in PHP übergeben / Rechnungsposten (automatisiert) einfügen

Beitrag lesen

Hallo, ich bin relativ neu in PHP und habe eine Frage zu einem Script, das Rechnungen erstellen soll und hoffe Ihr könnt mir helfen. Es handelt sich hier um eine vermutlich für Erfahrene recht einfache bzw. simple Angelegenheit; ich stehe aber auf dem Schlauch aber bin mir dennoch sicher dass das technisch schöner geht.

Ich habe eine Datei invoicing.php, auf welcher derzeit für vier Artikel Eingabefelder mit je einem Artikelnamen, eine Menge und einem Artikelpreis abgefragt werden. Diese werden mit serialize() in vier separate MySQL-Felder geschrieben und in der Datei invoice.php wieder aus dieser herausgeholt um sie anschließend nach unserialize in ein Array($Items) zu schreiben. $Items stellt dann die unterschiedlichen Rechnungspositionen dar und wird zu einer PDF weiterverarbeitet. Die Dateien habe ich in den betreffenden Ausschnitten unten angehangen.

  1. Kann ich mehrere Items/Rechnungspositionen in einem MySQL-Feld speichern? Bin ich da mit einem Delimiter mit Implode/Explode und den Arrays dazwischen auf dem richtigen Weg?
  2. Wie kann ich in der invoice.php die Anzahl der eingetragenen Items bestimmen wenn wenn ich bspw. mit Javascript bis zu 10 Artikeleingabefelder auf der invoicing.php abbilden würde?

Für jede hilfreiche Antwort vorab vielen Dank!

cc7162

-- invoicing.php –-

<input type='text' name='nameitem1' size='55'>
<input type='text' name='countitem1' size='10'>
<input type='text' name='priceitem1' size='10'>

[usw...]

  if($_POST['countitem1'] > 0 [...]){
    $Item1count = $_POST['countitem1'];
    $Item1price = $_POST['priceitem1'];
    $Item1 = serialize(array($Item1name, $Item1count, $Item1price));
}

[...]

$SaveInvoiceDetailQuery = "INSERT INTO invoices (offerid, item1, item2, item3, item4, address) VALUES  ('$OfferID',  '$Item1', '$Item2', '$Item3', '$Item4', '$CustomerString')";

[...]

-- invoice.php --

  while ($row = mysqli_fetch_array($Invoice, MYSQL_ASSOC)) {
    $OfferID = $row['offerid'];
    $CustomerID = $row['customerid'];
    $Item1 = $row['item1'];
    $Item2 = $row['item2'];
    $Item3 = $row['item3'];
    $Item4 = $row['item4'];
    $Address = $row['address'];
  }

[...]

$Item1 = unserialize($Item1);
$Item2 = unserialize($Item2);
$Item3 = unserialize($Item3);
$Item4 = unserialize($Item4);
$Items = array($Item1, $Item2, $Item3, $Item4);
$rechnungs_posten = array($Items);

[...]

foreach($rechnungs_posten as $posten) {
 $menge = $posten[1];
 $einzelpreis = $posten[2];
[...]
}

akzeptierte Antworten