【问题标题】:PHP delete button for every row / change value in table for this row [duplicate]每行的PHP删除按钮/更改该行表中的值[重复]
【发布时间】:2022-01-14 18:07:11
【问题描述】:

我希望表格中的每一行都有一个删除按钮,当单击例如第 1 行中的按钮时,第 1 行被删除。

EXTRA 如果您知道如何代替删除,当我按下按钮时,表中的值会发生变化。例如,当单击删除 btn 时,表中的值“确定”更改为“删除”。

代码适用于 delete.php 文件中的特定 id。

我对数据库安全不感兴趣,我只是想找到一种方法让它发挥作用。

index.php

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "userform";


// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT name, email, code, status, lname, checkin, checkout, mnumber, totalprice, rescode FROM usertable";
$result = $conn->query($sql);



if ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    echo '
<table>
<tr>
<td>Fullname</td>
<td>', $row['name'] . $row['lname'], '</td>
</tr>
<br>
<tr>
<td>Email address</td>
<td>', $row['email'], '</td>
</tr>
<br>
<tr>
<td>Reservation ID</td>
<td>', $row['rescode'], '</td>
</tr>
<br>
<tr>
<td>Check-in</td>
<td>', $row['checkin'], '</td>
</tr>
<br>
<tr>
<td>Check-out</td>
<td>', $row['checkout'], '</td>
</tr>
<br>
<tr>
<td>Mobile number</td>
<td>', $row['mnumber'], '</td>
</tr>
<br>
<tr>
<td>Total price</td>
<td>', $row['totalprice'], '</td>

<td><a href="delete.php">Cancel</a></td>
</tr>

</table>';
  }
} else {
  echo "0 results";
}
$conn->close();
?>

<script>

删除.php

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "userform";


// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT name, email, code, status, lname, checkin, checkout, mnumber, totalprice, rescode FROM usertable";
$result = $conn->query($sql);


$sql = "DELETE FROM usertable WHERE id='10'";


if ($conn->query($sql) === TRUE) {
    echo "Record deleted successfully";
  } else {
    echo "Error deleting record: " . $conn->error;
  }

$conn->close();
?>

【问题讨论】:

  • 您应该选择 id 并将此 id 添加到隐藏字段或作为参数按钮放入表单中。
  • 我试过了,但它们不起作用。您对上述代码有什么建议吗?
  • 示例显示了我在第一条评论中提到的内容。您可以使用按钮第一个示例进行获取和删除,而要删除的代码在第二个示例中。你有你需要的一切

标签: php mysql


【解决方案1】:

查询

这个查询:

$sql = "SELECT name, email, code, status, lname, checkin, checkout, mnumber, totalprice, rescode FROM usertable";
$result = $conn->query($sql);

应该是

$sql = "SELECT id, name, email, code, status, lname, checkin, checkout, mnumber, totalprice, rescode FROM usertable";
$result = $conn->query($sql);

删除链接

这个html代码

<td><a href="delete.php">Cancel</a></td>

应该是

<td><a href="delete.php?id=' .  $row['id'] .  '">Cancel</a></td>

请...检查您的代码:您使用“,”而不是“。”来连接字符串。

终于

此 SQL 代码

$sql = "DELETE FROM usertable WHERE id='10'";

应该是

$sql = "DELETE FROM usertable WHERE id='" . $_GET['id'] . "'";

【讨论】:

  • 非常感谢。你很能理解。它有效!
【解决方案2】:

试试这个: 在 index.php 中,

  • 在 sql 中添加“id”。 $sql = "SELECT id, name, email, code, status, lname, checkin, checkout, mnumber, totalprice, rescode FROM usertable";
  • 比在取消链接中传递 id,即 href="delete.php?id=".$row['id']

在 delete.php 中, 添加这一行 $id= $GET['id']; 并通过 $id 删除查询, $sql = "DELETE FROM usertable WHERE id=$id";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    相关资源
    最近更新 更多