【发布时间】:2015-04-14 23:07:33
【问题描述】:
我是 php 和 SQL 的新手,我只是在玩一个项目,以了解如何访问、更新和删除数据库中的数据。
我已经设法显示了选定的数据,创建了一个按钮来删除特定的 ID,但确实需要一些帮助来删除选定的行或记录,而不是在我的删除 php 脚本中对 ID 进行硬编码。
这是我的脚本示例:
<?php
$sql = "SELECT id, firstname, lastname, joinDate FROM customers";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo
"<div class='trow'>" .
$row["id"]. ": " .
$row["firstname"] . " " .
$row["lastname"]. " " .
$row["joinDate"]. " " .
"<span class='deleteMember'>
<form action='deleteMember.php' method='POST'>
<button type='submit'>Delete</button>
</form>
</span>" . " " .
"<span class='editMember'><a href='#'>Edit</a></span>" .
"<br></div>";
}
} else {
echo "0 results";
}
$conn->close();
?>
这里是delete.php
<?php
// sql to delete a record
$sql = "DELETE FROM customers WHERE id='6' ";
if ($conn->query($sql) === TRUE) {
header("Location: index.php");
} else {
echo "Error deleting record: " . $conn->error;
}
$conn->close();
?>
我希望它做的是,删除您从中点击删除按钮的行,而不仅仅是删除我在 delete.php 脚本中指定的行。我通过发布 id 了解它应该如何工作,但不知道该怎么做。
【问题讨论】:
-
您可能想研究使用 GET 来删除向您的 delete.php 脚本发送请求的按钮。类似于:delete.php?id=
-
您使用的是 PDO 还是
mysqli? -
@tadman 从
num_rows和fetch_assoc()看来我会说mysqli。 -
MySQLi 是我正在使用的一个,因为我试图学习基础知识 - 这只是学习如何更新和删除数据等
-
@Maximus2012 他们可能不会那么好。您应该不使用
GET请求执行破坏性操作,并且尤其是不要使用GET请求执行DELETEs。如果这些 URL 被蜘蛛抓取,每条记录都会被删除。