Начнем с того, что я должен уточнить название, поэтому вы действительно понимаете, что я пытаюсь сделать.
Я работаю над shopping-cart-ish script, но это немного отличается, потому что все продукты (почти всегда) будут приобретаться каждый раз. Поэтому я считаю, что лучше всего перечислить все предметы вместе с таблицей, а затем позволить клиенту выбрать количество каждого продукта, который они хотят.
Он будет выглядеть примерно так:
-- Name ------------------------- Amount --
-- A random product ------------- 15 ------
-- Another random product ------- 2 -------
-- And a third one --- ---------- 19 ------
-- ------------------------------ ---------
-- ------------------------------ SUBMIT --
Проблема в том, что я не уверен, как записать ее в базу данных. Или более конкретно, я не знаю, как отправить данные таким образом, что я получаю все выбранные продукты, а также количество каждого из них в массив. Я могу добавить больше продуктов в базу данных позже, поэтому я не могу их жестко закодировать.
Я не могу опубликовать два значения на одном входе, что слишком плохо. Если бы я мог сделать это, я мог бы разместить идентификатор и сумму как два разных значения.
Любые идеи, как это сделать?
Когда вы создаете свои поля ввода, используйте массив для имени с идентификатором продукта в качестве ключа.
Например (где $product_id
- идентификатор продукта, которому соответствует количество):
<input type="text" name="amounts[<?=$product_id?>]">
Затем в PHP после отправки формы $_POST['amounts']
будет массивом, где ключи являются идентификаторами продукта, а значения представляют собой фактические суммы. Вам не нужно ничего делать, чтобы это произошло; по умолчанию PHP будет распознавать, что данные GET/POST, содержащие []
, должны быть внесены в массив.
Затем вы можете просто перебрать этот массив для обновления базы данных:
foreach ($_POST['amounts'] as $product_id => $amount)
{
if (!empty($amount)) // was a value given for this amount?
{
// build your insert query here
}
}
объединить идентификатор productID и qty с трубкой "|" так что это будет
ProductID = 14
Qty = 3
вставленное value = 14 | 3
то после вашей выборки db вы можете взорвать данные с помощью "|" и имеют part1 = 14 и part2 = 3