我正在尝试创建一个允许我通过单击删除按钮删除行的表。我确实在下面的链接中找到了一篇文章,确实提供了一些帮助,但我仍然无法让它工作:Show all rows in mysql table then give option to delete specific ones。我已经编写了大部分代码,但是我遇到了第10行的问题delete.php页面。想法?
Main.php
$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>";
Delete.php
"DELETE FROM cs_general_info WHERE id=".mysql_real_escape_string($delete_id);
答案 0 :(得分:0)
希望delete.php
不仅仅是单行。在delete.php
中,您需要抓住POST
方法和$row[id]
;绑定它,然后删除它。
答案 1 :(得分:0)
要获取要在delete.php
文件中删除的行的ID,您需要获取变量,如下所示:
$delete_id = $_POST['delete'];
警告:这是使其工作所需的基本功能。但是,在进入任何生产代码之前,您需要实现许多其他级别的安全性。
答案 2 :(得分:0)
如果那是你的delete.php
,那么你就错过了很多。您需要数据库连接,并且需要对数据库执行SQL
命令。但在您通过$_POST
获取参数之前,这是您最不担心的事情。
Here is the PDO
Manual for the database connection and SQL
execution.
答案 3 :(得分: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');