Php 复选框将1或0插入SQL数据库
我正在建立一个系统,从一个问题中得到许多答案。因此,用户可以单击按钮动态添加答案。我希望用户能够勾选正确答案旁边的复选框,然后将其插入数据库(1是正确的) 以下是我所拥有的: HTML: 像这样:Php 复选框将1或0插入SQL数据库,php,mysql,checkbox,pdo,Php,Mysql,Checkbox,Pdo,我正在建立一个系统,从一个问题中得到许多答案。因此,用户可以单击按钮动态添加答案。我希望用户能够勾选正确答案旁边的复选框,然后将其插入数据库(1是正确的) 以下是我所拥有的: HTML: 像这样: SQL插入ab_名称,但如果勾选或取消勾选,ab_correct始终设置为1。请对此提供指导?您可以使用for循环,而不是foreach。首先,您需要确保两个数组具有相同数量的元素 if(count($_POST['ab_name']) != count($_POST['ab_correct']))
SQL插入
ab_名称
,但如果勾选或取消勾选,ab_correct
始终设置为1
。请对此提供指导?您可以使用for
循环,而不是foreach
。首先,您需要确保两个数组具有相同数量的元素
if(count($_POST['ab_name']) != count($_POST['ab_correct']))
exit('Not same amount of elements.');
然后,循环遍历它们中的每一个
for($i=0; $i<count($_POST['ab_name']); $i++){
$stmt->bindValue(':ab_name', $_POST['ab_name'][$i]);
$stmt->bindValue(':ab_correct', $_POST['ab_correct'][$i]);
$stmt->execute();
}
for($i=0;$ibindValue(':ab\u name',$\u POST['ab\u name'][$i]);
$stmt->bindValue(':ab_correct',$u POST['ab_correct'][$i]);
$stmt->execute();
}
但是,您没有在$ab\u correct数组中循环。如果未选中ab\u correct
,它将不会被发送,您是否运行JS来检查这一点?$ab\u correct
和$\u POST['ab\u correct']
是数组。谢谢-这就是我想要的,似乎如果勾选其中一个复选框,它将为我不理解的所有答案插入1。谢谢你的回答。它没有到达退出语句,这很好。但是我收到:“SQLSTATE[HY093]:无效参数编号:绑定变量的数量与令牌的数量不匹配“哦,您必须在for循环中添加$stmt=$db->prepare($sql);
,以便每次都重置绑定。原来是我将sql放在for循环之后而不是之前。答案已解决谢谢!
if(count($_POST['ab_name']) != count($_POST['ab_correct']))
exit('Not same amount of elements.');
for($i=0; $i<count($_POST['ab_name']); $i++){
$stmt->bindValue(':ab_name', $_POST['ab_name'][$i]);
$stmt->bindValue(':ab_correct', $_POST['ab_correct'][$i]);
$stmt->execute();
}
if(isset($_POST['$ab_correct'])){$update = 1;}else{$update = 0;}
foreach ($_POST['ab_name'] as $ab_name) {
$stmt->bindValue(':ab_name', $ab_name);
$stmt->bindValue(':ab_correct', $update);
$stmt->execute();
}