0

データベーステーブルからエントリを削除する作業をしています。

現在、削除は機能しています。ただし、「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');
?>
4

3 に答える 3

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:ちなみに、session_start();本当に使用したい場合は、フォームのphpを追加するのを忘れていますが、今回はお勧めできません。

于 2013-03-03T05:57:04.263 に答える
0

$_SESSION['id']、ループ内で毎回オーバーライドされます。

単に$_POST["delete_id"]行IDを取得するために使用しないのはなぜですか。

于 2013-03-03T04:40:56.717 に答える
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']

于 2013-03-03T05:04:27.977 に答える