如何创建使用 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 从数据库中删除行的下拉菜单?的主要内容,如果未能解决你的问题,请参考以下文章