我有以下复选框项,我想将它们插入数据库。
<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代码>
您的查询失败,因为您尚未为$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')
我将表名从订单
更改为订单
,并删除了道达尔
,因为它是空的,其中没有存储值。
谢谢你的建议。