2012-03-29 7 views
1

Ich brauche einen Rat, bevor ich anfange. Meine PHP Skills sind nur 3 Monate alt und lernen so wie ich gehe.PHP Order Capture Portal

Ich muss einen Auftragserfassungsbildschirm erstellen, der die Informationen in einer Datenbank erfasst.

Das Bestellformular kann bis zu 150 Zeilen enthalten, die alle erfasst werden müssen.

Ich kann das Formular leicht genug erstellen, aber ich frage mich, was der beste Weg, um dies in die Datenbank zu schreiben ist.

auf Vorlage, kann ich die Formularwerte mit der post-Methode erhalten und schreiben sie mit dem Aufbau mysql:

INSERT INTO example 
    (example_id, name, value, other_value) 
VALUES 
    (100, 'Name 1', 'Value 1', 'Other 1'), 
    (101, 'Name 2', 'Value 2', 'Other 2'), 
    (102, 'Name 3', 'Value 3', 'Other 3'), 
    (103, 'Name 4', 'Value 4', 'Other 4'); 

Gibt es eine Straffung Methode, dies zu tun oder muss ich den Code für 150 wiederholen Linien?

Antwort

1

Aus Usabilitätsgründen möchten Sie vielleicht das Design Ihres Formulars überdenken. Wenn der Benutzer 149 Zeilen des Bestellformulars ausfüllt und versehentlich auf die Zurück-Schaltfläche klickt, werden sie einen wirklich schlechten Tag haben. Vielleicht sollten Sie in Erwägung ziehen, jeweils eine einzelne Zeile zu erfassen oder dem Benutzer das Hochladen einer Datei (Tabellenkalkulation, CSV usw.) mit allen Einträgen zu ermöglichen.

Wenn Sie das Design des Formulars nicht ändern können, müssen Sie die Zeilen in einer Schleife verarbeiten. Die Schleife kann wie folgt aussehen:

for ($i = 1; $i <=150; $i++) { 
    $name = $_POST['name' . $i]; 
    $value = $_POST['value1' . $i]; 
    // capture the rest of the field values 
    $query = "INSERT INTO (...) VALUES ($name, $value, ...)"; 
    mysql_query($query); 
} 

Alternativ können Sie das Ergebnis jeder Schleife zu einer großen Abfrage anhängen, und führen Sie es nach alle 150 Zeilen erfassen.

Aus Gründen der Kürze, ich habe ein paar Details weggelassen, die Sie hinzufügen müssen:

    Ihre Eingaben entkommen
  • Ihre Benutzer, um sicherzustellen, nicht korrupt ist Ihre Datenbank
  • Betrachten PDO mit oder etwas anderes als mysql_ *, um die Verwendung Ihrer Datenbank zu erleichtern.
  • Stellen Sie sicher, dass Sie keine leeren Werte erfassen und einfügen, wenn eine Zeile leer ist.