通过复选框删除多行

时间:2013-08-16 18:29:58

标签: php mysqli

我正在尝试使用复选框删除多行但是我似乎没有让它工作。有人能告诉我我缺少什么或者更好的方法吗?

我正在尝试使用其ID删除行。我收到以下通知,在删除的列

中没有设置为yes

Notice: Array to string conversion in

<form action="" method="post">
<?php
$result = $stmt->get_result();
echo"<div class='message'>";
while ($row = $result->fetch_assoc()) {

?>

<div class='msgwrap'>
<input name="checkbox[<? echo $row['id']?>]" type="checkbox" ><?php echo $row['to_user'];?>

</div>

<?php

}

?>
<input type="submit" name="delete">
</div>
</form>
<?php

if (isset($_POST['delete'])) {
$id = $_POST['checkbox'];  
$mydb = new mysqli('localhost', 'root', '', '');
$stmt = $mydb->prepare("update messages SET deleted ='yes' where to_user = ? and id = ? ");
$stmt->bind_param('ss', $user, $id);
$stmt->execute();}
?>

1 个答案:

答案 0 :(得分:0)

由于您在name属性中使用数组表示法,PHP会自动将您的复选框的POST值转换为数组。尝试这样的事情:

$ids = implode( ',', $id );
$stmt = $mydb->prepare("update messages SET deleted ='yes' where to_user = ? and id IN(?) ");
$stmt->bind_param('ss', $user, $ids);

您的代码中不清楚$user来自何处。