提问者:小点点

在MySQL中插入多个复选框值


我有以下复选框项,我想将它们插入数据库。

<form action="test.php" method="post">
<input type="checkbox" name="check_list[]" value="rice:10">
<input type="checkbox" name="check_list[]" value="milk:8">
<input type="checkbox" name="check_list[]" value="orange:4">
<input type="submit" />
</form>

以下是php代码:

if(!empty($_POST['check_list'])) {
    foreach($_POST['check_list'] as $check) { 
        $mealA = explode(":",$check);
        $meal = $mealA[0];
        $sql1 = "INSERT INTO Order (User, Meal, Total) VALUES ('$name' , '$meal', '$total')";
        if (mysqli_query($mysqli,$sql1)) {
            echo "You order has been recieved";
        } else {
            echo "Error: " . $sql1;
        }
    }
}

请注意,每个复选框的值表示项目名称:价格。

问题是我得到了错误“error:”$sql1


共2个答案

匿名用户

您的查询失败,因为您尚未为$total设置值。因此,您必须从查询中删除Total字段,从而导致

$sql1 = "INSERT INTO Order (User, Meal) VALUES ('$name' , '$meal')";

这将为每个成功的新插入提供NULL值到

根据你提供的代码,我猜你想做类似的事情?

$mealA = explode(":",$check);
$meal = $mealA[0];
$total = $mealA[1]; // setting the value of $total otherwise query is going to fail
$sql1 = "INSERT INTO Order (User, Meal, Total) VALUES ('$name' , '$meal', '$total')";

匿名用户

问题在于insert语句的错误:

INSERT INTO Order (User, Meal, Total) VALUES ('$name' , '$meal', '$total')

我将表名从订单更改为订单,并删除了道达尔,因为它是空的,其中没有存储值。

谢谢你的建议。