php - 反转输出顺序

标签 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>";
}

这样做的问题是它在页面顶部而不是底部显示我上次发送的消息

最佳答案

此处的一个选项是包装当前查询,然后将顺序更改为 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

关于php - 反转输出顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39584644/

相关文章:

php - html2pdf 转换为 pdf 时出错

php - 我的博客分页不起作用

php - WordPress 永久链接页面上的自定义查询字符串

php - 从数据库中选择最少的数字

MySQL 触发器用于无主键插入

mysql - 如果表中的列太多,是否会降低性能?

mysql - 照片库 - 数据库设计

php - 将PHP AES加密移植到Golang

php - 不明白为什么 Zend_Mail::addHeader() 去掉换行符

PHP 查询不起作用