2013-08-16 119 views
1

我想刪除多行使用複選框,但我似乎並沒有得到它的工作。有人能告訴我我錯過了什麼,或者有什麼更好的方法嗎?通過複選框刪除多行

我想刪除使用其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();} 
?> 
+0

如果我不得不猜測,請檢查你的$ user是一個字符串,而不是一個數組 – MikeD

回答

0

PHP是您的複選框POST值會自動轉換到一個數組,由於您使用數組name屬性中的符號。嘗試這樣的:

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

從代碼中不清楚哪裏$user來自哪裏。

+0

我已經定義了'$ user'但是沒有在這裏包含它..你的代碼給了我'解析錯誤:語法錯誤,意外'$ id'' –

+0

哎呀,忘了逗號..更新了答案。 –

+0

謝謝,但現在它拋出'致命的錯誤:調用未定義的方法mysqli_stmt :: bindParam()'當我提交併沒有設置爲'是' –