使用 php 和 sql 从数据库中删除数据

Delete data from database using php and sql

提问人:Freelance Work 提问时间:10/21/2021 最后编辑:ADysonFreelance Work 更新时间:10/21/2021 访问量:652

问:

所以我有一个看起来像这样的 php 页面

enter image description here

<?php
    echo "<table border='1' width= 300px >
    <tr>
        <th>Friend Names</th>
        <th>Remove Friends</th>
    </tr>";
    
    while($row = mysqli_fetch_assoc($result2))
    {
        $friend_id_got = $row['friend_id2'];
    
        $query3 = "SELECT profile_name 
                    from friends 
                    where friend_id = '$friend_id_got' ";
        $result3 = $conn->query($query3);
        $final3 = mysqli_fetch_assoc($result3);

        echo "<tr>";
            echo "<td>" . $final3['profile_name'] . "</td>";
        echo "<td>" 
    ?>
        <form action="friendlist.php" method= "POST">
            <button id="add-friend-btn" type= 'submit' name = 'submit'>Unfriend</button>
        </form>
    <?php
  
        "</td>";
        echo "</tr>";
    }

    echo "</table>";

当我按下按钮时,我需要相应的名称才能删除它。我面临的唯一问题是我如何获得与按钮对应的名称。 我认为我们需要以某种方式将按钮和名称联系起来,因此当按下特定按钮时,我会得到相应的名称

php html sql 表单 mysqli

评论

1赞 ADyson 10/21/2021
只需在包含 ID 的表单中添加一个隐藏字段(我希望从 ,)。然后,当您提交表单时,它将在 $_POST 数据中可用$friend_id_got
0赞 Freelance Work 10/21/2021
U 的意思像输入字段?好的,但是我如何获得按下相应按钮的名称。
0赞 ADyson 10/21/2021
我的意思是一个隐藏的领域(developer.mozilla.org/en-US/docs/Web/HTML/Element/input/hidden)。...你不需要按钮的名称,你需要被取消好友的人的ID。这就是隐藏字段将提供的内容。然后,您将在查询中用于更新数据库。当你说“按钮的名称”时,你真的是指“表明要执行的操作是”取消好友“操作的东西吗?如果是这样,那么另一个隐藏字段就可以了。But how do I get the name of which corresponding button is pressed
1赞 RiggsFolly 10/21/2021
好的代码缩进将帮助我们阅读代码,更重要的是,它将帮助您调试代码 为了您自己的利益,快速浏览一下编码标准。您可能会被要求在几周/几个月内修改此代码,您最终会感谢我。
3赞 RiggsFolly 10/21/2021
您的脚本容易受到 SQL 注入攻击即使你正在逃避输入,它也不安全!应始终在 或 API 中使用准备好的参数化语句,而不是将用户提供的值连接到查询中。永远不要相信任何用户输入!MYSQLI_PDO

答:

0赞 Mark 10/21/2021 #1

继@ADyson的评论之后:

<form action="friendlist.php" method= "POST">
    <input type="hidden" name="cancel_id" value="<?=$friend_id_got ?>" />
    <button id="add-friend-btn" type="submit" name="submit">Unfriend</button>
</form>

通过在表单中包含隐藏字段,您可以存储更多信息。

你可以看到,我正在将你取消好友关系的朋友的ID存储在隐藏字段的值中,所以当提交表单(点击按钮)时,你将可以访问POST数据中的“cancel_id”,这显然包含要取消好友的朋友的ID。

1赞 ADyson 10/21/2021 #2

从问题和评论中,看一眼你的代码,听起来你实际上可能需要在单击按钮时将两条数据提交给服务器:

  1. 为响应请求而应采取的行动(即解除好友关系)

  2. 被取消好友关系的人的 ID

为此,您可以向表单添加一些隐藏字段。这些对用户是不可见的,但在提交表单时,PHP可以在数据中使用它。$_POST

像这样的东西:

<form action="friendlist.php" method= "POST">
  <input type="hidden" name="unfriend_id" value="<?=$friend_id_got ?>" />
  <input type="hidden" name="action" value="unfriend" />
  <button id="add-friend-btn" type="submit" name= "submit">Unfriend</button>
</form>