2012-03-29 38 views
1

我需要一些建議,然後再開始。我的PHP技能只有3個月的時間,所以我一直在學習。PHP訂單捕獲門戶

我需要創建一個訂單捕獲屏幕捕獲到數據庫的信息。

訂單最多可以有150行,全部需要被捕獲。

我可以很容易地創建表單,但是想知道將其寫入數據庫的最佳方式是什麼。

上提交,我可以使用POST方法獲取表單值,並將其寫入使用到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'); 

是否有這樣做的更簡化的方法還是需要重複碼150行呢?

回答

1

從易用性的角度來看,您可能希望重新考慮您的表單設計。如果用戶填寫了149行訂單,並意外擊中後退按鈕,他們將會有一個非常糟糕的一天。也許你應該考慮一次捕獲一行,或允許用戶上傳包含所有條目的文件(電子表格,CSV等)。

如果您無法更改表單的設計,則需要循環處理這些行。環路可以是這個樣子:

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); 
} 

或者,可以追加每個迴路一個大查詢的結果,並捕獲所有的150行後,運行它。

爲了簡潔起見,我已經離開了,你需要添加一些細節:

  • 逃脫你的投入,以確保您的用戶不會破壞你的數據庫
  • 考慮使用PDO或mysql_ *以外的其他內容可以使您的數據庫使用更加容易。
  • 檢查以確保您沒有捕獲並插入空值,如果一行留空。