首页 > 数据库 > mysql教程 > 删除多个数据库行时如何修复 PHP 复选框数组和数据库连接问题?

删除多个数据库行时如何修复 PHP 复选框数组和数据库连接问题?

Linda Hamilton
发布: 2024-11-28 08:53:13
原创
287 人浏览过

How to Fix PHP Checkbox Array and Database Connection Issues When Deleting Multiple Database Rows?

使用 PHP 根据复选框选择删除多行

使用关系数据库时,通常需要同时删除多行。为此,您可以利用表单中的复选框来选择要删除的行。

在本指南中,我们将解决使用 PHP 和复选框删除多行时面临的常见问题。我们将根据给定问题陈述中提供的信息,提供问题及其解决方案的简明概述,而不重复标题“使用 PHP 选择复选框删除多行”。

问题

您已经创建了一个 PHP 文件,该文件允许用户从 MySQL 数据库表中选择和删除特定行。但是,尽管标记了复选框并提交了表单,但行仍然保持不变。这表明问题源于 PHP 代码。

解决方案

让我们深入研究提供的 PHP 代码并找出潜在的错误:

  1. 复选框数组: PHP 脚本最初将“checkbox”视为单个元素。相反,它应该被视为一个数组,以正确捕获选定的复选框。要纠正此问题,请将以下代码替换为:
<input name="checkbox" type="checkbox" value="
                    <?php echo $row['link_id']; ?>">
登录后复制

为:

<input name="checkbox[]" type="checkbox" value="
                    <?php echo $row['link_id']; ?>">
登录后复制
  1. 查询执行: PHP 代码未通过与删除行的查询的数据库连接。此遗漏导致查询无法执行。要更正此问题,请在执行查询之前添加以下行:
$result = mysqli_query($dbc, $sql);
登录后复制

其中“$dbc”代表数据库连接。

实现

使用这些调整后,您的 PHP 脚本现在应该在单击“删除”按钮时正确删除所选行。以下是处理此问题的更新后的 PHP 代码:

if (isset($_POST['delete'])) {
    $checkbox = $_POST['checkbox'];

    for ($i = 0; $i < count($checkbox); $i++) {
        $del_id = $checkbox[$i];
        $sql = "DELETE FROM links WHERE link_id='$del_id'";
        $result = mysqli_query($dbc, $sql);
    }

    if ($result) {
        echo '<meta http-equiv="refresh" content="0;URL=view_links.php">';
    }
}
登录后复制

通过执行以下步骤,您可以使用复选框和 PHP 根据用户选择成功从数据库表中删除多行。

以上是删除多个数据库行时如何修复 PHP 复选框数组和数据库连接问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板