如何创建使用 PHP 从数据库中删除行的下拉菜单?

Posted

技术标签:

【中文标题】如何创建使用 PHP 从数据库中删除行的下拉菜单?【英文标题】:How to create a dropdown menu that uses PHP to delete rows from database? 【发布时间】:2019-02-21 19:56:40 【问题描述】:

我目前正在我的学院学习 php,但我对此感到困惑。我不知道如何使用 html 表单在 PHP 中创建下拉菜单以从数据库中删除一行。这是我的代码:

//This is index.php
    <div>
        <?php
            include('includes/delete.php');
        ?>
    <form method="POST" action="includes/delete.php">

        <select name="username">
        <?php
            $sql = mysqli_query($connection, "SELECT user_name, user_lastname FROM users");
            while ($row = mysqli_fetch_assoc($sql))?>
                <option>
                <?php echo $row['user_name'];?>
                <?php echo $row['user_lastname'];?>
                </option> 
            <?php ?>
            </select>
        <input type="submit" name="delete" value="Delete">
    </form>
    </div>

//This is delete.php
<?php

    $serverName = "localhost";
    $userName = "root";
    $userPassword = "";
    $dbName = "baza_podataka";

    $connection = mysqli_connect($serverName, $userName, $userPassword, $dbName);

    //Checking connection
    if (!$connection) 
        die("Error: Could not connect!" . mysqli_connect_error());
    

    //Deleting an user from database
    if(isset($_POST['delete'])) 
    $username = $_POST['username'];

        if(mysqli_query($connection, "DELETE FROM 'users' WHERE 'username' = '$username' " ))
        echo "User was deleted!";
        else
            echo "User could not be deleted! Please try again later.";
        
    

【问题讨论】:

【参考方案1】:

delete 是按钮的id,不会发布。您需要检查 $_post['username']。

if(isset($_POST['用户名'])) $username = $_POST['username']; ...

【讨论】:

【参考方案2】:

您的代码中缺少的是您的select 标记中缺少option 值。同时,你的 sql 代码容易受到 sql 注入攻击,你应该使用绑定参数。好的,您将使用以下 sn-p 来运行您的代码。

  <option value="<?php echo $row['user_name']?>" >
      <?php echo $row['user_name'];?>
      <?php echo $row['user_lastname'];?>
  </option> 

【讨论】:

好吧,我试过了,但没用,什么也没发生,它只是说“无法删除用户”,就像我在 ELSE 上写的那样...... $_POST['username'] 是否填充了数据?

以上是关于如何创建使用 PHP 从数据库中删除行的下拉菜单?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 jQuery Chosen 选择下拉菜单中隐藏或删除选项

使用 PHP 和 mySql 从下拉菜单中选择选项

如何使用 PHP 在多个下拉表单数据库中显示相同的记录?

如何从表格的下拉菜单中删除先前选择的选项?

如何查看 Ajax 传递给 PHP 的数据以及 PHP 对数据的作用 - 下拉菜单选项

使用 php/ajax 选择下拉菜单后从数据库中获取客户信息