删除适用于除第一条消息以外的所有内容

时间:2019-01-24 03:08:01

标签: php

我正在编码我的网络游戏中处理邮件系统的部分,以便玩家可以在游戏中进行交流。在您的收件箱中,您需要能够删除和阅读邮件,所以我放了一个删除按钮,然后单击它,如果它得到“ deletemsg”,它将mail_id放入一个函数中,该函数将从数据库。这很好用,但是当您删除除最上面的那条消息以外的所有消息时,它将不起作用。顶部消息只是位于此处,如果您单击其删除按钮,则页面刷新后该消息仍然保留。

因此,如果您有三个消息,则消息#1,#2和#3。假设#1位于收件箱的顶部,然后是#2和#3。如果您按下#3和#2的删除按钮,则消息可以很好地删除,但是出现消息#1时,它什么也没做。

我尝试查看代码中的错误,但是我不知道为什么除了用户收件箱中的最后一条消息外,其他所有消息都不会删除。

<?php
                            $query = "SELECT * FROM mail WHERE receiver='$char_name' ORDER BY time DESC;";
                            $result = mysqli_query($db, $query) or die(mysqli_error($db));
                            while($row = mysqli_fetch_array($result)) {
                                $mail_id = $row['mail_id'];
                                echo("<tr>");
                                echo("<td>" . date("F j, Y, g:i a", $row['time']));
                                echo("<td>" . $row['sender']);
                                echo("<td>" . $row['subject']);
                                echo("<td><a href='mail-read.php?mail_id=" . $row['mail_id']. "' class='btn btn-sm btn-outline-dark'>Read</a>");
                                echo("
                                        <form action='mail.php' method='get'>
                                            <button class='btn btn-danger btn-sm' name='deletemsg'>Delete</button></tr></td>
                                        </form>
                                        ");

                            }

                        if(isset($_GET['deletemsg'])) {
                            delete_mail($mail_id);
                            echo("<div class='alert alert-success'><strong>Successfully deleted message!</strong></div>");
                        }

                    ?>

删除与此链接相关的另一个不同.php上的函数

function delete_mail($mail_id) {
global $db;
$query = "DELETE FROM mail WHERE mail_id='$mail_id'";
mysqli_query($db, $query) or die(mysqli_error($db));
return 1;
}

0 个答案:

没有答案