复选框和数据库不起作用

时间:2011-08-09 16:04:58

标签: php javascript database checkbox

所以我一直试图获取用户的user_id,如果点击了他们的复选框并将其保存到数据库,但我的代码似乎不起作用。

$invites = $_POST["invite"];
mysql_query("INSERT INTO group_members (fan_id, group_id) VALUES ('$invites',     '$group_id')") or die(mysql_error());

while ($row = mysql_fetch_array($friends)) {
                echo "<div id=\"groupFanBox\"><a href=\"profile.php?id=" . $row['user_id'] . "\">" . $row['full_name'] . "</a><br><input type=\"checkbox\"value=" . $row['user_id'] . " name=\"invite[]\"></br></div>";
                echo $row['user_id'];

怎么了?

3 个答案:

答案 0 :(得分:1)

插入查询不会返回结果集,因此mysql_fetch_array()无需处理任何内容。也许你想要一个SELECT查询:

SELECT user_id, full_name
FROM group_members

答案 1 :(得分:0)

您尝试将数组存储到数据库中!

您必须为每个复选框执行插入操作:

foreach($_POST['invites'] as $fanId) {
    mysql_query("INSERT INTO group_members (fan_id, group_id) VALUES ('" . intval($fanId) . "', '" . intval($groupId . "')") or die(mysql_error());
} 

我认为你的插入语句是真正的问题,while循环只是为了显示你如何创建复选框:-)如果没有,我的答案可能是错的; - )

答案 2 :(得分:0)

更容易看到失败的方法,以及稍后处理代码的方法是使用php输出你想要的html,而不使用echo语句。

所以这个:

while ($row = mysql_fetch_array($friends)) {
                echo "<div id=\"groupFanBox\"><a href=\"profile.php?id=" . $row['user_id'] . "\">" . $row['full_name'] . "</a><br><input type=\"checkbox\"value=" . $row['user_id'] . " name=\"invite[]\"></br></div>";
                echo $row['user_id'];

成为这个:

while($row=mysql_fetch_array($friends)){
//close your php before the loop ends
?>
<div id="groupFanBox">
<a href="profile.php?id=<?php print $row['user_id'];?>"><?php print $row['full_name'];?></a>
<br/>
<input type="checkbox" value="<?php print $row['user_id'];?>" name="invite[]">
<br/>
</div>";
<?php //then close the loop afterwards
}
?>

除了可读性之外,我认为您所遇到的问题来自您对复选框的命名。name='invites[]'是,我不相信,相当于您尝试检索的帖子$_POST['invites']。将括号放到name='invites',看看它是否有效。