使用复选框从表中删除记录[重复]
Posted
技术标签:
【中文标题】使用复选框从表中删除记录[重复]【英文标题】:Delete record from table using Checkbox [duplicate] 【发布时间】:2012-09-15 05:30:13 【问题描述】:我想知道是否有人可以帮助我。
我正在尝试编写一个脚本,该脚本创建一个表单,使用户能够通过选择复选框删除记录,然后按下“提交”按钮。
通过阅读许多文章,我整理了以下脚本,它是构建表格、复选框和提交按钮的代码部分。
<?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 border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="del" id="del" action="deletelocation.php" method="post">
<table border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF"> </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 控制台运行了这个,但很遗憾,我没有收到可以帮助我解决问题的错误消息。
我只是想知道是否有人可以看看这个,让我知道我哪里出错了。
【问题讨论】:
你在哪里定义$detectinglocations
?如果你回显$sql
并直接在数据库中运行,你会得到什么?
已经有太多关于这个的问题了:***.com/questions/10145717/…***.com/questions/9239648/…***.com/questions/8870741/…***.com/questions/1296149/…***.com/questions/8529005/…***.com/questions/8522070/…
嗨@andrewsi,感谢您这么快回复我的帖子。 'detectinglocations 是我的表名,从我读过的文章中,我没有看到任何定义该表的地方。然而,我对此相对较新,所以也许这就是问题所在。如果我取出'sql'行。初始错误没有变化。亲切的问候
@IRHM - detectinglocations
和 $detectinglocations
不一样。尝试从 DELETE 查询中删除 $
,然后重试?
您好,感谢您的回复。我已经设法使用@GBD 解决方案让它工作。所有最好的和亲切的问候
【参考方案1】:
如下更改您的 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);
【讨论】:
您好 GBD,非常感谢您回复我的帖子并提供解决方案。这成功了。再次,非常感谢和亲切的问候。 嗨@GBD,当然不是我。我已经取消了这个。也许是同一个人否决了我的问题。当时间延迟允许时,我会接受答案。亲切的问候以上是关于使用复选框从表中删除记录[重复]的主要内容,如果未能解决你的问题,请参考以下文章