最好让用户一次输入10进入数据库,然后问:“您想输入更多数据吗?”然后使用添加的条目更新表?
或
当用户连续输入10并且所有字段一次输入数据库时,我是否可以在会话中保存一组输入?
感谢您的回复。
答案 0 :(得分:2)
我有一些用于输入数据的“向导”界面,在用户进行时将页面存储在会话中。所以是的,你的后一个想法是合理的。
答案 1 :(得分: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会话中,而是将其直接保存到逻辑块中的数据库中,这将使用户在会话超时(可能发生)时不会丢失其信息如果形式很大)。然后向表结构添加挂起记录标志,以确定用户何时保存整个记录与部分保存。
答案 2 :(得分:0)
注意,php的常用加固解决方案,例如suhosin,限制了post变量的最大数量。它在共享主机中很常见,并且可能会无声地失败。
另外,请考虑对post变量使用数组语法..
例如。输入名称如下:“user []”将$ _POST变量填充为数组。