php - 遍历数组并将数据上传到数据库中的行

标签 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]')");
 }
} 

最佳答案

试试这个,看起来你有空格问题

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_* 仍然是非常糟糕的做法。

关于php - 遍历数组并将数据上传到数据库中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17053261/

相关文章:

php - 使用 PDO 更新 msql 方法

php - 通知 : Undefined Index inside 'while loop'

java - 从 Java 应用程序发送带参数的 POST 请求时出现问题

php - 如何在 ajax 回调中重置表单?

php - 用于重置数组索引的内置 PHP 函数?

php - 为什么 "<image_link>"没有被插入就出现在我的数据库表字段中?

java - 从数据库到JTable

php - 如何在 php 中使用日期条件获取数据

java - 在 Java 中使用流发送 Http Post 消息

PHP - 从函数返回数组