使用mysql准备的多个复选框数据库插入


Multiple checkbox database insert with mysql prepare

我用以下代码生成了复选框:

while($row = $result->fetch_assoc()) {
    echo "<input type='checkbox' name='branch[]' value='".$row['id']."'> ".$row['name']."<br>";
}

我需要在mysql数据库中插入每个复选框的值。我为每个复选框插入它的代码,但只插入$member_id$branch总是插入为 0。我做错了什么?

$sql = "SELECT id FROM members WHERE email='$email'";
$result = mysqli_query($mysqli,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$member_id = $row["id"];
$checked_arr = $_POST['branch'];
$branch_count = count($checked_arr);
for ($i = 0; $i < $branch_count; $i++) {
    if ($insert_stmt_branch = $mysqli->prepare("INSERT INTO members_branch (member, branch) VALUES (?, ?)")){         
    $insert_stmt_branch->bind_param('ss', $member_id, $branch);
        if (! $insert_stmt_branch->execute()) {
            echo "ERROR: branch insert";
        }
    }
}

在 for 循环开始时,您忘记添加:

$branch = $checked_arr[$i];

此外,您没有任何内容可以验证通过电子邮件地址查找的查询是否返回值。如果未找到帐户,则 $member_id 值将为空。

您永远不会为$branch赋值