2010-11-26 61 views
1

嘿,所有。我有一個項目需要用戶輸入100-500個表單輸入字段,然後輸入到數據庫表中。我需要一些關於處理這麼多領域的最佳方法的建議。什麼是處理超過100個輸入字段的最佳方式?

最好讓用戶每次輸入10個數據到數據庫,然後問「你想輸入更多的數據嗎?」然後用添加的條目更新表格?

我能保持輸入數組中的會話,而用戶在連續10,然後讓所有字段輸入到數據庫一次?

感謝您的回覆。

+1

Wh ...哇,這是很多形式...... – 2010-11-26 06:22:44

回答

2

我會有某種「嚮導」界面用於輸入數據,隨着用戶的行爲將會話頁面存儲在會話中。所以是的,你的後一種想法是健全的。

+0

因此,PHP和MySQL將不會一次處理500個數據條目嗎? – Tableking 2010-11-26 06:28:45

0

好吧,除了關於何時保存數據的問題,對於像這樣的大型表格,我喜歡用匹配的隱藏輸入標記將輸入標記加倍。例如,<input name='test' > I will also create <input type='hidden' name='test-orig' value='orig-value' />然後在服務器上,我將比較表單輸入標記與隱藏的原始數據,並查看數據是否已被更改。這將使您僅對已更改的數據元素執行INSERT/UPDATE,而不對每個值執行INSERT/UPDATE。

此外,請務必研究ON DUPLICATE KEY UPDATE語法,因爲它只是非常有用。確保你規範化你的數據庫表,只更新已經改變的數據元素。

對於這種大小的表單,不是將數據存儲在PHP會話中,而是將其直接保存到數據庫的邏輯塊中,這樣可以防止用戶在會話超時的情況下丟失其信息(可能會如果表單很大,就會發生)。然後將一個掛起的記錄標誌添加到您的表結構中,以確定用戶何時保存了整個記錄與部分保存。

0

請注意,php的常見強化解決方案(例如suhosin)限制了post變量的最大數量。這在共享主機中很常見,並可能在靜默中失敗。

此外,考慮使用POST變量數組語法..

如。輸入名稱如:「user []」將填充$ _POST變量作爲數組。

相關問題