Php 使用复选框删除HTML表单中的选定记录
我有一个HTML表单,其中包含一些记录。应通过选中一个或所有记录对应复选框来删除记录 当我选中一条记录的复选框并单击“删除”时,查询将成功运行,但该记录不会删除 以下是PHP代码:Php 使用复选框删除HTML表单中的选定记录,php,html,database,Php,Html,Database,我有一个HTML表单,其中包含一些记录。应通过选中一个或所有记录对应复选框来删除记录 当我选中一条记录的复选框并单击“删除”时,查询将成功运行,但该记录不会删除 以下是PHP代码: if(isset($_POST['delete'])) { $allCheckBoxId = $_POST['chkDel']; array_map ('mysql_real_escape_string', $allCheckBoxId); $ids = implode(",", $all
if(isset($_POST['delete']))
{
$allCheckBoxId = $_POST['chkDel'];
array_map ('mysql_real_escape_string', $allCheckBoxId);
$ids = implode(",", $allCheckBoxId);
$object=new connection();
$object=$object->dbConnect();
$st=$object->prepare(
"delete * from banners where bannerid IN (?)");
$st->bindParam(1, $ids);
$delete=$st;
$delete->execute();
if($delete)
{
echo "record deleted successfully." .
"This will go to banners within 5 sec";
}
else
{
echo "not deleted";
}
}
和HTML格式:
<form name="myform" action="listbanners.php" method="post" OnSubmit="return onDelete();" id="frm1">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<th width="13"><input type="checkbox" class="checkbox" title="select all" onclick="checkAll(document.myform.chkDel);" name="CheckAll" /></th>
<th width="13">ID</th>
<th>Name</th>
<th><input type="submit" name="delete" value"Delete"></th>
</tr>
<?php
$object=new connection();
$object=$object->dbConnect();
$st=$object->prepare("select * from banners order by bannerid desc");
$st->execute();
while($row=$st->fetch(PDO::FETCH_ASSOC))
{
?>
<tr>
<td><input name="chkDel[]" type="checkbox" title="select" class="checkbox" value="<?php echo $row['bannerid'];?>"/></td>
<td><?php echo $row['bannerid'];?></td>
<td><h3 onClick="location='editbanner.php?bannerid=<?php echo $row['bannerid'];?>'"><?php echo $row['file'];?></h3></td>
<td><input type="submit" name="delete" value="delete"/></td>
</tr>
</form>
身份证件
名称
您试图将单个参数绑定到一个值数组。您需要将每个值作为单独的参数传入;例如:
$st=$object->prepare("delete * from banners where bannerid IN (?,?,?)");
您需要为要包含在in子句中的每个值包含一个占位符。您可以根据$id
中的项目数量动态生成SQL
我错过了“DELETE*”,这是无效的语法;但我把它留在原地,因为我注意到的观点是正确的。这是一个不完整的答案,不是一个错误的答案。呼出您正在生成的SQL;当您直接在数据库中运行它时,它工作吗?我使用PDO方式与mysql db通信。如何将该查询运行到PhpMyAdmin中?复制查询并将其粘贴到PhpMyAdmin(选项卡“SQL”)。如果执行$st->bindParam(1,$id)$st->bindParam(2,$id)$st->bindParam(3,$id);这是正确的方法吗?对不起,伙计们!这太容易了。我解决了这个小问题。问题是“删除*”,现在我删除了“*”,现在它开始工作了。我肯定会注意到这一点。你应该加上这个作为回答。我试图回答,因为我是这个网站的新成员,所以不需要为回答自己的问题而赢得声誉。
$st=$object->prepare("delete * from banners where bannerid IN (?,?,?)");