迭代数组并将数据上传到数据库中的行

时间:2013-06-11 20:33:10

标签: php mysql post checkbox

我有一些复选框,如果选中它们,我想将它们的值插入数据库。

HTML:
<input type="checkbox" id="m1" name="category[]" value="1"/>
<input type="checkbox" id="m2" name="category[]" value="2"/>
<input type="checkbox" id="m3" name="category[]" value="3"/>
<input type="checkbox" id="m4" name="category[]" value="4"/>
<input type="checkbox" id="m5" name="category[]" value="5"/>

我可以打印出类别数组,并根据我点击的复选框为我提供正确的值。我似乎无法遍历它们以在我的数据库中插入多行。

插入数据库后,数据库应如下所示:

| USERID | MACHINEID | 
----------------------
|      1 |         1 |  
|      1 |         2 |   
|      1 |         3 |  

如果我只点击前3个复选框。

我在想这样的事情:

$array_zone = $_POST['category'];
if(isset($_POST['category']))
{
 for($i = 0; $i < count($array_zone); $i++)
{
 mysql_query("INSERT INTO `userPlanDetail` (`user_id`, `machine_id`) VALUES ('$user_id', '  $array_zone[$i]')");
 }
} 

2 个答案:

答案 0 :(得分:1)

试试这个,看你有空白问题

mysql_query("INSERT INTO `userPlanDetail` (`user_id`, `machine_id`) VALUES ('$user_id', '$array_zone[$i]')");

如果有多个,那就更好地将它们像这样

 mysql_query("INSERT INTO `userPlanDetail` (`user_id`, `machine_id`) 
VALUES ('$user_id', '$array_zone[$i]'), ('$user_id', '$array_zone[$i++]')");

它们将作为单个语句更快地插入

在这里查看更多信息

Multiple mysql INSERT statements in one query php

甚至对于测试来说,mysql_ *仍然是非常糟糕的做法。

答案 1 :(得分:0)

如果你的machineid列是一个int,那么'$ array_zone [$ i]中的空格可能会给你带来麻烦。你在检查mysql错误吗?