将特定值写入数据库X次?

时间:2010-10-01 21:55:48

标签: php mysql submit

首先,我应该澄清标题,所以你真的明白我要做的事情。

我正在开发一个购物车脚本,但它有点不同,因为每次都会购买所有产品(几乎总是)。因此,我认为最好用表格列出所有项目,然后让客户选择他们想要的每种产品的数量。

它看起来像这样:

-- Name ------------------------- Amount --
-- A random product ------------- 15 ------
-- Another random product ------- 2 -------
-- And a third one --- ---------- 19 ------
-- ------------------------------ ---------
-- ------------------------------ SUBMIT --

问题是,我不确定如何将其写入数据库。或者更具体地说,我不知道如何以我获得所有选定产品的方式提交数据,以及每个产品的数量。我稍后可能会向数据库添加更多产品,因此我无法对其进行硬编码。

我无法在一个输入中发布两个值,这太糟糕了。如果我能做到这一点,我可以将ID和金额作为两个不同的值发布。

任何想法如何做到这一点?

2 个答案:

答案 0 :(得分:1)

创建输入字段时,请使用数组作为名称,并将产品ID作为键。

例如(其中$product_id是金额对应的产品的ID):

<input type="text" name="amounts[<?=$product_id?>]">

然后在PHP中,在发布表单后,$_POST['amounts']将是一个数组,其中键是产品ID,值是实际数量。你不需要为此做任何特别的事情;默认情况下,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
  }
}

答案 1 :(得分:0)

使用管道“|”连接productID和qty所以它会是

的productId = 14

数量= 3

插入值= 14 | 3

然后在你的数据库提取后,你可以通过“|”爆炸数据并且part1 = 14和part2 = 3