2014-12-05 19 views
0

我有这个代码产生的复选框:多选框数据库中插入与MySQL准备

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"; 
     } 
    } 
} 
+0

检查从获取'$ member_id'和'$ branch'值的位置获取的数组。 ''insert_stmt_branch-> bind_param('ss',$ member_id,$ branch)''var_dump($ row)' – Aditya 2014-12-05 18:23:07

+1

''$ branch';'不存在。你想使用'$ checked_arr [$ i]' - >'$ insert_stmt_branch-> bind_param('ss',$ member_id,$ checked_arr [$ i]);' – Sean 2014-12-05 18:23:20

+1

你可能应该''准备'你的SQL *循环,所以你可以重复使用它。 – Quentin 2014-12-05 18:23:33

回答

1

在你的for循环的开始,你忘了补充:

$branch = $checked_arr[$i]; 

而且,你没有任何东西来验证您的通过电子邮件地址查询返回一个值。如果没有找到帐户,您的$ member_id值将为空。

1

你永远不分配一个值$branch

相关问题