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();}
?>
4

1 に答える 1

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は、どこから来ているのか明確ではありません。

于 2013-08-16T18:47:25.953 に答える