while 循环中的最新条目优先
Newest entry first in while loop
我正在 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>
按日期对电子邮件进行排序,我希望您的 table 列中有 create_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";
使用 ORDER BY 命令并选择一个列名作为排序依据是最简单的方法。
"SELECT * FROM mail WHERE receiver='$drow[ID]' ORDER BY date DESC"
我还建议您在选择中包含 'seen' 值以提高效率
"SELECT * FROM mail WHERE receiver='$drow[ID]' and seen=0 ORDER BY date DESC"
您应该在查询末尾添加 'ORDER BY column_name DESC'。
这导致以特定顺序检索数据库信息。
DESC 代表 'DESCENDING'。
您的查询应如下所示:
$getmails = "SELECT * FROM mail WHERE reciever='$drow[ID]' ORDER BY ID DESC";
我正在 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>
按日期对电子邮件进行排序,我希望您的 table 列中有 create_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";
使用 ORDER BY 命令并选择一个列名作为排序依据是最简单的方法。
"SELECT * FROM mail WHERE receiver='$drow[ID]' ORDER BY date DESC"
我还建议您在选择中包含 'seen' 值以提高效率
"SELECT * FROM mail WHERE receiver='$drow[ID]' and seen=0 ORDER BY date DESC"
您应该在查询末尾添加 'ORDER BY column_name DESC'。 这导致以特定顺序检索数据库信息。
DESC 代表 'DESCENDING'。
您的查询应如下所示:
$getmails = "SELECT * FROM mail WHERE reciever='$drow[ID]' ORDER BY ID DESC";