【发布时间】:2017-04-26 22:02:26
【问题描述】:
我正在制作一个系统以在表格中显示系统中的页面,其中一列是操作列,让人们可以选择删除页面。我这样做了:
listpages.php
<?php
$sql = "SELECT * FROM Pages";
$result = $conn->query($sql);
if ($result) {
while($row = $result->fetch_assoc()) {
$pages[] = array_map('htmlspecialchars', $row);
}
}
// PHP is finished now, here's the HTML
?>
<form method="post" action="utils/delpage.php">
<table>
<thead>
<tr>
<th>Page Name</th>
<th>Page Type</th>
<th>Registered on</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php foreach($pages as $page):?>
<tr>
<input type="hidden" name="targetid" value="<?= $page['id'] ?>"></input>
<td><?= $page['pagename'] ?></td>
<td><?= $page['pagetype'] ?></td>
<td><?= $page['regdate'] ?></td>
<td><input type="submit" value="delete" class="red-text material-icons tooltipped" data-tooltip="Delete"><td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</form>
delpage.php
<?php
include ('../../php/db.php');
$id = $_POST['targetid'];
$target = htmlentities($id);
$stmt = $conn->prepare("DELETE FROM Pages WHERE id = (?)");
$stmt->bind_param("i", $page);
$page = $target;
$stmt->execute();
?>
这部分有效:我得到了我设置为删除记录的垃圾桶图标。问题是,当我点击它时,它总是会删除最后一条记录,而不是它说要删除的记录。这是一个问题,而不是它应该如何工作。我不明白为什么要这样做,因为 id 正在以与其他信息相同的方式“显示”。我搜索了一个答案,但没有任何效果,我没有看到很多选择,但创建了一个问题。有什么帮助吗?
提前致谢
【问题讨论】:
-
只需阅读代码@user2860957
标签: php sql mysqli sql-delete delete-row