0

我正在尝试创建一个表格,允许我通过单击删除按钮来删除一行。我确实在以下链接上找到了一篇文章,它确实提供了一些帮助,但我仍然无法让它工作:显示 mysql 表中的所有行,然后提供删除特定行的选项。我已经编写了大部分代码,但我delete.php 页面上的第 10 行有问题。想法?

主文件

$result = mysqli_query($con,"SELECT * FROM cs_general_info");

echo "<table><tr><td>Delete</td><td>First Name</td><td>Last Name</td><td>Address</td>td>Phone</td><td>E-Mail Address</td></tr>";

while($row = mysqli_fetch_array($result)) {

?>

<tr>
<td>
<form action="delete.php" method="POST">
<input type="hidden" name="delete_id" value="<?php echo $row['id']; ?>">
<input type="Submit" value="Delete"></form>
</td>

<?php

  echo "<td>" . $row['id'] ."</td>";
  echo "<td>" . $row['first_name'] . "</td>";
  echo "<td>" . $row['last_name'] . "</td>";
  echo "<td>" . $row['address'] . "</td>";
  echo "<td>" . $row['phone'] . "</td>";
  echo "<td>" . $row['email'] . "</td></tr>";

}

echo "</table>";

删除.php

"DELETE FROM cs_general_info WHERE id=".mysql_real_escape_string($delete_id);
4

4 回答 4

0

希望delete.php不仅仅是那条线。在delete.php您将要捕获POST方法和$row[id]; 绑定它,然后删除它。

于 2013-03-13T16:50:22.243 回答
0

要获取要在delete.php文件中删除的行的 id,您需要获取变量,如下所示:

$delete_id = $_POST['delete'];

警告:这是使它工作所需的非常基本的功能。但是,在将其用于任何生产代码之前,您将需要实现许多其他级别的安全性。

于 2013-03-13T16:51:49.407 回答
0

如果那是你的delete.php,那么你错过了很多。您需要数据库连接,并且需要对SQL数据库执行命令。但在您通过$_POST.

这是PDO数据库连接和SQL执行的手册。

这是$_POST.

于 2013-03-13T16:52:04.067 回答
0

您想在表格的每一行中放置一个链接或内联表单,然后有一个脚本删除指定的行并将用户返回到您的页面。

<table>
  <tbody>
<?php foreach ($results as $result): ?>
    <tr>
      <td><?php echo $result->title; ?></td>
      <td>
        <form action="delete.php" method="post">
          <input type="hidden" name="id" value="<?php echo $result->id; ?>" />
          <input type="submit" value="Delete" />
        </form>
      </td>
    </tr>
<?php endforeach; ?>
  </tbody>
</table>

然后delete.php

<?php

if (isset($_POST['id']) && intval($_POST['id']) > 0) {
    // create PDO instance; assign it to $db variable
    $sql = "DELETE FROM `table` WHERE `id` = :id LIMIT 1";
    $smt = $db->prepare($sql);
    $smt->bindParam(':id', $_POST['id'], PDO::PARAM_INT);
    $smt->execute();
}

header('Location: index.php');
于 2013-03-13T16:54:55.110 回答