Php 遍历数组并将数据上载到数据库中的行中
我有几个复选框,如果选中,我想将它们的值插入数据库Php 遍历数组并将数据上载到数据库中的行中,php,mysql,post,checkbox,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="c
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"/>
如果我只单击前3个复选框
我是这样想的:
| USERID | MACHINEID |
----------------------
| 1 | 1 |
| 1 | 2 |
| 1 | 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]')");
}
}
$array\u zone=$\u POST['category'];
如果(isset($_POST['category']))
{
对于($i=0;$i
如果您的machineid列是int,则“$array\u zone[$i]”中的空格可能会给您带来麻烦。您正在检查mysql错误吗?试试这个,看起来您有空白问题
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++]')");
它们作为单个语句插入的速度要快得多
请查看此处以了解更多信息
即使在测试中,mysql_*仍然是非常糟糕的做法 逻辑不正确$_POST可能有数据,但类别部分可能为空。您的示例代码也易受攻击,因此根本不要使用此代码。感谢您提供的信息,但现在我只是尝试将复选框输入到数据库中。在此之后对其进行保护是简单的。我还想提及的是,在将值直接放入查询之前,应该对其进行转义。查找SQL注入。目前我没有检查错误。我刚做了,它说外键约束失败了。用户id和机器id都是外键