2010-11-26 2 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, ограничивают число максимального числа постпеременных переменных. Это распространено в общих хостах и ​​может терпеть неудачу.

Кроме того, рекомендуется использовать синтаксис массива для почтовых переменных ..

например. входы с такими именами, как «user []» будут заполнять переменную $ _POST в виде массива.

Смежные вопросы