Мне нужен совет, прежде чем я начну. Моим навыкам PHP всего 3 месяца, так что я учусь.
Мне нужно создать экран захвата заказа, который фиксирует информацию в базе данных.
Форма заказа может содержать до 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 строк?
С точки зрения удобства, вы можете пересмотреть дизайн своей формы. Если пользователь заполняет 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 строк.
Для краткости я выделил несколько деталей, которые вам нужно добавить: