从我的数据库表中删除条目。
目前删除工作正常。但是它会删除“id + 1”
我的脚本在mysql表填充的条目旁边填充一个“删除”按钮。
当我点击条目旁边的删除时,它会删除项目+1。
我认为这与while循环有关,就像我填充项目一样。
有关如何解决此问题的任何想法?
<?php
while($row = mysqli_fetch_array($result)) : ?>
<tr>
</table border = '1'><br><table border = '1'><th>Subject</th><th>Sender</th> <th>Message</th><th>Delete</th>
<?php
echo "<tr><td>";
echo $row['subject'];
echo "<td>";
echo $row['sender'];
echo "<td>";
echo $row['msgText'];
echo "<td>";
?>
<form action="delete.php" method="post">
<input type="hidden" name="delete_id" value="<?php $_SESSION['id'] = $row['id']; ?>" />
<input type="submit" value="Delete" />
</form>
</tr>
<?php endwhile; ?>
这是delete.php
中的脚本<?php
session_start();
$id = $_SESSION['id'];
$con=mysqli_connect("localhost","root","","something");
$sql = "DELETE FROM `mailbox` WHERE `id`= '$id'";
$result = mysqli_query($con,$sql);
header('Location: loggedin.php');
?>
答案 0 :(得分:1)
<input type="hidden" name="delete_id" value="<?php $_SESSION['id'] = $row['id']; ?>" />
将其更改为:
<input type="hidden" name="delete_id" value="<?php echo $row['id']; ?>" />
在您的delete.php中,只需将$_SESSION['id']
替换为$_POST['delete_id']
session_start();
,但这次不是一个好主意。
答案 1 :(得分:0)
每次循环都会覆盖$_SESSION['id']
。
为什么不只是简单地使用$_POST["delete_id"]
来检索行ID。
答案 2 :(得分:0)
您的Table Structure
错了
<?php
while($row = mysqli_fetch_array($result)) :
?>
<tr>
<th>Subject</th>
<th>Sender</th>
<th>Message</th>
<th>Delete</th>
</tr>
<tr>
<?php
echo "<td>";
echo $row['subject'];
echo "</td><td>";
echo $row['sender'];
echo "</td><td>";
echo $row['msgText'];
echo "</td>";
?>
<td>
<form action="delete.php" method="post">
<input type="hidden" name="delete_id" value="<?php $_SESSION['id'] = $row['id']; ?>" />
<input type="submit" value="Delete" />
</form>
</td>
</tr>
<?php endwhile; ?>
删除记录时也不要使用$_SESSION['id']
。使用$_POST['delete_id']