PHP将数组插入mysql

时间:2016-08-25 15:38:01

标签: php mysql multidimensional-array

我有5张这样的表:

价格:

priceList_id    product_id  compType_id     price   range_id 

价目表:

id  name 

产品:

 id     product_desc 

companyType:

 id     type 

pricesRange:

 id     range_desc 

价格表是我存储所有内容并与其他表ID链接的地方,如下所示:

id  priceList_id    product_id  compType_id     price   range_id
 1      1                1           5          23.10      1
 2      1                1           5          21.30      2

问题是当我重新接收数据并尝试将其插入数据库时​​:

<input name=\"price[]\" type=\"number\" min=\"0\" required>
<input name=\"price[]\" type=\"number\" min=\"0\" required>
<input name=\"price[]\" type=\"number\" min=\"0\" required>
<input name=\"price[]\" type=\"number\" min=\"0\" required>
<input name=\"price[]\" type=\"number\" min=\"0\" required>

我得到这样的帖子:

if (isset($_POST["createPriceList"])) {
            $this->createPriceList($_POST["price"]);
        }

所以$ _POST [“price”]是一个数组。我如何将数据插入价格表,知道第一个输入是product_id:1,compType_id:5,range_id:1。第二个输入是product_id:1,compType_id:5,range_id:2,第三个输入是product_id: 1,compType_id:5,range_id:3等等...... 有6个range_id,4个products_id和5个compType_id`s。

提前致谢!

2 个答案:

答案 0 :(得分:2)

你不能用这种结构。您必须包含&#34;链接&#34; HTML中的ID,因此您可以识别哪个输入是哪个。最简单的方法就是

<input name="price[1] type="number" value="10" />
<input name="price[42] type="number" value="500" />

等...您可以通过此指定数组键,并且不必接受PHP在您的字段只有[]时生成的自动生成的键。

然后它只是一个问题:

foreach($_POST['price'] AS $id => $value) {
   ....  // 1->10, 42->500, etc...
}

答案 1 :(得分:0)

请使用数组形式的参数创建createPriceList函数以插入价格表

function createPriceList($price)
{
    for($i=0;$i<sizeof($price);$i++)
    {
         $query = "insert into prices values($price[0],$price[1],$price[2],$price[3],$price[4])";
         mysql_query($query);
    }
}

我希望这会对你有所帮助。随意评论。