反向输出顺序

时间:2016-09-20 02:05:20

标签: php mysql

我有一个问题,我正在创建评论页面,但我希望将所有结果颠倒显示,所以发送的最后一个结果将最接近底部。但我还需要限制它显示的评论或消息的数量。我使用的是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>";
}

这个问题是它显示了我最后发送在页面顶部而不是底部的消息

1 个答案:

答案 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