当前位置: 首页 > 面试题库 >

使用复选框,PHP和MySQL删除多行

薛修能
2023-03-14
问题内容

如标题所示,我想从数据库中删除多行。为此,我有两个文件,一个前端文件,该文件生成一个表,该表显示用户可以删除的文件,这些文件可以使用复选框选择。

后端文件将处理选定的复选框,并使用SQL语句删除选定的文件。

我遇到的问题是将所选文件的ID从前端传递到后端。这两个文件的代码如下:

前端

//Build Table Query
$query="SELECT * FROM documents";
$result= mysqli_query($con, $query) or die("Invalid query");

$count = mysqli_affected_rows($con);

?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="deletefilesback.php">
<table width="800" border="0" cellpadding="3" cellspacing="2" bgcolor="#CCCCCC">
<tr>
<td colspan="5" bgcolor="#FFFFFF" align="center"><strong>Delete Multiple         Files</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>Title</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Description</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>File Location</strong></td>
</tr>
<?php
while($row = mysqli_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox"  id="checkbox[]" value="<?php echo $rows['id']; ?>"></td>
<td bgcolor="#FFFFFF"><?php echo $row['id']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $row['title']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $row['description']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $row['doc_link']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit"   id="delete" value="Delete Files"></td>
</tr>
</table>
</form>
</td>
</tr>
</table>

后端

$delete = $_POST['checkbox'];

//Then do what you want with the selected items://
foreach ($delete as $id) {

$query="DELETE FROM documents WHERE id = '".$id."'";
$result= mysqli_query($con, $query) or die("Invalid query");

}
//Show that the items have been successfully removed.//
if (mysqli_affected_rows($con) > 0) {
echo '<p>The selected items have been successfully deleted.</p>';
} else {
echo '<p>An error has occurred while processing your request</p>';
}
?>

请注意,一旦运行,我将使用unlink函数通过前端表的doc_link部分删除服务器上的文件。谢谢


问题答案:

在html页面中这样做

<input name="checkbox[<?php echo $row['id']?>]"

并在后端这样做

foreach ($delete as $id => $val) {
    if($val=='checked'){
        $query="DELETE FROM documents WHERE id = '".$id."'";
        $result= mysqli_query($con, $query) or die("Invalid query");
    }
}


 类似资料:
  • 问题内容: 我很难解决多个复选框删除问题。有人可以指导我解决问题吗?此处应该发生的情况是,用户可以在框上打勾,然后单击“删除”按钮以删除被打勾的框。不幸的是,我的代码似乎无效。你能为我指出正确的方向吗? 问题答案: 此HTML: 应该: 该查询应为:

  • 问题内容: 我想从MYSQL数据库中删除多行。我已经创建了这个delete.php文件,以选择各种链接并使用复选框将其删除。 这似乎没有删除任何行。我的数据填充在表中。我猜问题出在PHP代码上。请帮我在这里。 问题答案: 您应该将其视为这样的数组, 只有这样,您才能对其计数并循环删除。 您还需要将数据库连接传递给查询。 您的没有包括:

  • 问题内容: 如何在Firefox中设置复选框样式,并取消选中标记和边框? CSS: HTML: 问题答案: input[type=”checkbox”] {

  • 我正在尝试使用复选框进行标记删除。假设用户有大约10个产品,每个产品都有3个不同的标签。 当前用户只能删除单个标记。每次标记删除后,页面刷新,他可以删除另一个标记。这不是真正的用户友好。这就是为什么我尝试对标记进行多重选择,并在单击一个按钮时删除所有选定的标记。 这就是它现在的样子: 我的问题是我需要产品id标签id来分离它们。 如果按delete(删除)按钮,则会将此数据传递到控制器: 主要的问

  • 问题内容: 我目前正在使用一个必须能够选中/取消选中复选框的系统。每当它更改状态时,我都需要进行jquery并调用ajax来更新页面。 我的问题是-我该怎么做,以便更新? 提前致谢。 问题答案: 例如,您可以这样做: 首先,您必须查看该复选框是否已选中: 您可以通过Ajax加载特定的内容:

  • 问题内容: 我在这里查找了一些示例,但是其中许多示例要么太高级以至于无法掌握PHP,要么它们的示例过于针对自己的项目。我目前正在努力处理PHP表单的非常基本的部分。 我正在尝试创建一个带有几个复选框的表单,每个复选框分配一个不同的值,我希望将这些复选框发送到一个变量(数组?),以便以后可以回显/使用,在我的情况下,我将在其中发送已检查的值一封电邮。 到目前为止,我已经尝试了一些变体,但是最接近的是