-6

重複の可能性:
チェックボックス、PHP、およびMySQLを使用して複数の行を削除する

誰かが私を助けてくれるのではないかと思います。

チェックボックスを選択して[送信]ボタンを押すことでユーザーがレコードを削除できるフォームを作成するスクリプトを作成しようとしています。

多くの記事を読んで、テーブル、チェックボックス、送信ボタンを作成するコードのセクションである次のスクリプトをまとめました。

 <?php

$query = "SELECT  l.*, COUNT(f.locationid) totalfinds FROM detectinglocations l LEFT JOIN finds f ON f.locationid = l.locationid WHERE l.userid = '$idnum' GROUP BY l.locationname";

$result=mysql_query($query);

$count=mysql_num_rows($result);
?>

<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="del" id="del" action="deletelocation.php" method="post">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Name</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Lastname</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Email</strong></td>
</tr>

<?php
while($rows=mysql_fetch_array($result)){
?>

<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['locationid']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['locationid']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['locationname']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['returnedaddress']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['totalfinds']; ?></td>
</tr>

<?php
}
?>

<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input type="submit" value="Delete" /></td>
</tr>
</table>
</form>
</td>
</tr>
</table>

次に、以下のコードはレコードの削除を処理します。

<?php

$del_id = $_POST['checkbox']; 

for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $detectinglocations WHERE locationid='$del_id'";
$result = mysql_query($sql);
}


?>

正しい情報が取得され、フォームテーブルに表示されますが、私が抱えている問題は、レコードの削除を機能させることができないことです。これをJavaScriptコンソールで実行しましたが、残念ながら、問題の解決に役立つ可能性のあるエラーメッセージが表示されません。

誰かがこれを見て、どこが間違っているのか教えてくれないかと思っただけです。

4

1 に答える 1

0

PHPコードを以下のように変更します

$del_id = $_POST['checkbox']; 
$detectinglocations = 'your database table name';

foreach($del_id as $value){
   $sql = "DELETE FROM ".$detectinglocations." WHERE id='".$value."'";
   $result = mysql_query($sql);
}
于 2012-09-23T15:13:39.470 に答える