删除条目后更新mysql数据库

时间:2013-03-03 04:30:14

标签: php mysql

从我的数据库表中删除条目。

目前删除工作正常。但是它会删除“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');
?>

3 个答案:

答案 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']

即可

P / S:顺便说一下,如果你确实想要使用它,你忘了在你的表单的php中添加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']