【问题标题】:How to make the "delete button" not to delete the latest entry using PHP如何使用PHP使“删除按钮”不删除最新条目
【发布时间】:2019-03-03 13:01:24
【问题描述】:

我的代码删除最后一行而不是删除自己的行,怎么办? 我尽我所能,但它不起作用,请发送帮助。

  $sql = "SELECT id, name, ArticleTitle, Article FROM article";

  if ($result = $conn->query($sql))
   {
   // output data of each row
   while($row = $result->fetch_assoc()) {

    echo "<tr><td>" . 
    $row["id"]. "</td><td>"  ."<input type=hidden name=id value=". 
    $row["id"].">".
    $row["name"] . "</td><td>" . 
    $row["ArticleTitle"]. "</td><td>" .
    $row["Article"] ."</td><td>" .
    "<a href=connection.php id=".$row["id"]."><button>View</button></a>". "</td><td>".
    "<button type=submit name=login_user>Delete</button>" .


    "</td></tr> " ;
    // href="copytrade.php?id=$_GET['id']


}

echo "</form></table>";

这是我的 connection.php 脚本

 if (isset($_POST['login_user'])) {
      $id = mysqli_real_escape_string($conn, $_POST['id']);

       if (empty($id)) {
        array_push($errors, "ID is required");
      }

    // sql to delete a record
     if (count($errors) == 0) {
        $query = "DELETE FROM article WHERE id='$id'";
        $results = mysqli_query($conn, $query);
    }
    if ($conn->query($query) === TRUE) {
        echo "Record deleted successfully";
    }
}

【问题讨论】:

    标签: php mysqli row


    【解决方案1】:

    您只需要一个 ID 隐藏字段(目前每行都有一个)。您将其值设置为在提交表单之前单击的删除的 id。你现在的做法是通过 $_POST 将每个 id 作为相同的值发送到页面,最后一个会覆盖所有其他的。

    【讨论】:

    • 以及如何阻止它只让一行提交数据?
    • 如果我按下行#1 上的删除按钮,ID#1 它只会发送行#1 的隐藏输入中的值,而不是发送最新行的隐藏输入?
    • 另一种方法是将每一行包装在一个表单中,然后每个表单只有一个 id 发送到删除。
    • 这正是我所做的,先生!谢谢你的回答!
    猜你喜欢
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多