[英]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>
按日期對電子郵件進行排序,我希望表中的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"
我還建議您在選擇中包括“可見”值以提高效率
"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";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.