我有一个问题,我正在创建评论页面,但我希望将所有结果颠倒显示,所以发送的最后一个结果将最接近底部。但我还需要限制它显示的评论或消息的数量。我使用的是mysqli和php。
$sql = "SELECT id, message FROM messages WHERE name = '$user' ORDER BY id DESC LIMIT 10";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<div id='message'>" . $row["message"]. "</div> ";
}
} else {
echo "<p style='color:white;'>No messages have been sent</p>";
}
这个问题是它显示了我最后发送在页面顶部而不是底部的消息
答案 0 :(得分:0)
此处的一个选项是打包当前查询,然后将排序更改为ORDER BY id ASC
:
$sql = "SELECT t.id, t.message FROM"
." (SELECT id, message FROM messages WHERE name = '$user' ORDER BY id DESC LIMIT 10)"
." ORDER BY t.id";
为清楚起见,这里是一个更易读的查询版本:
SELECT t.id,
t.message
FROM
(
SELECT id, message
FROM messages
WHERE name = '$user'
ORDER BY id DESC
LIMIT 10
) t
ORDER BY t.id