Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php while循环中的第一个最新条目_Php_Email_Loops_Sorting_While Loop - Fatal编程技术网

Php while循环中的第一个最新条目

Php while循环中的第一个最新条目,php,email,loops,sorting,while-loop,Php,Email,Loops,Sorting,While Loop,我正在用PHP构建一个PM系统,我遇到了一个问题。 每封邮件都存储在数据库中。 此查询获取写入您登录用户的所有邮件 $getmails = "SELECT * FROM mail WHERE reciever='$drow[ID]'"; 然后我有了这个代码,可以显示每个邮件,以列表的形式写给用户 if ($getter->num_rows > 0) { while($mrow = $getter->fetch_assoc()) { // do some

我正在用PHP构建一个PM系统,我遇到了一个问题。 每封邮件都存储在数据库中。 此查询获取写入您登录用户的所有邮件

$getmails = "SELECT * FROM mail WHERE reciever='$drow[ID]'";
然后我有了这个代码,可以显示每个邮件,以列表的形式写给用户

if ($getter->num_rows > 0) {
    while($mrow = $getter->fetch_assoc()) {
        // do something
    }
}
这段代码工作并显示邮件。问题是,他的代码显示了最新的邮件,在列表的底部。最古老的邮件在顶部

每封邮件都有一个ID,我在想,将这些邮件排序到最新的第一位的一种方法是在最上面的最低ID之后排序

这里有人能帮我实现这个目标吗? 提前谢谢

完整代码:

<div class="mailbox">
<?php
    if ($getter->num_rows > 0) {
        while($mrow = $getter->fetch_assoc()) {
            if($mrow['seen'] == 0) {
                echo "<li><b>$mrow[titel]</b></li>";
            } else {
                echo "<li>$mrow[titel]</li>";
            }   
        }
    } else {
        echo "You have no mails";
    }
?>
</div> 

按日期对电子邮件进行排序,我希望在您的表中有一列
create\u date

$getmails = "SELECT * FROM mail WHERE reciever='$drow[ID]' ORDER BY create_date DESC";
或者使用ID,最新的应该是最高的:

$getmails = "SELECT * FROM mail WHERE reciever='$drow[ID]' ORDER BY id DESC";

按日期对电子邮件进行排序,我希望表中有列
create\u date

$getmails = "SELECT * FROM mail WHERE reciever='$drow[ID]' ORDER BY create_date DESC";
或者使用ID,最新的应该是最高的:

$getmails = "SELECT * FROM mail WHERE reciever='$drow[ID]' ORDER BY id DESC";

使用orderby命令并选择要排序的列名是最简单的

"SELECT * FROM mail WHERE receiver='$drow[ID]' ORDER BY date DESC"
我还建议在您的选择中包含“已看到”值,以提高效率

"SELECT * FROM mail WHERE receiver='$drow[ID]' and seen=0 ORDER BY date DESC"

使用orderby命令并选择要排序的列名是最简单的

"SELECT * FROM mail WHERE receiver='$drow[ID]' ORDER BY date DESC"
我还建议在您的选择中包含“已看到”值,以提高效率

"SELECT * FROM mail WHERE receiver='$drow[ID]' and seen=0 ORDER BY date DESC"

您应该在查询的末尾添加“ORDER BY column_name DESC”。 这将导致按特定顺序检索数据库信息

DESC代表“下降”

您的查询应如下所示:

$getmails = "SELECT * FROM mail WHERE reciever='$drow[ID]' ORDER BY ID DESC";

您应该在查询的末尾添加“ORDER BY column_name DESC”。 这将导致按特定顺序检索数据库信息

DESC代表“下降”

您的查询应如下所示:

$getmails = "SELECT * FROM mail WHERE reciever='$drow[ID]' ORDER BY ID DESC";

非常感谢你!这正是我需要的。我会记下你的答案,一旦我可以!:)非常感谢你!这正是我需要的。我会记下你的答案,一旦我可以!:)