循环时反转


Reverse while loop

    while($data=$SQL->fetch(PDO::FETCH_ASSOC)){
       echo $data=['message'];
   }

循环时可以反转吗?我有一个页面回显消息,我需要反向放置

SQL- 描述限制 20获取最近 20 条消息

但是我的聊天框是反向打印的

message 1 (oldest message)
message 2
message 3 (newest message)

您应该在原始 SQL 查询中定义数据集的顺序。

请参阅 ORDER BY 子句的文档。

更新

OP 似乎想要 20 条最新消息,但顺序相反。然后,您需要执行如下所示的子查询:

SELECT `message` 
FROM (SELECT * FROM `table`
      ORDER BY `id` DESC 
      LIMIT 20) AS `i`
ORDER BY `i`.`id` ASC;

获取记录后 您可以反转返回的数组

http://us1.php.net/array_reverse

如果你真的想反转 PHP 中的数据,你可以使用 array_reverse

// Fetch all records 
$data = $SQL->fetchAll(PDO::FETCH_ASSOC);
// Reverse them
$data = array_reverse($data);
foreach ($data as $record) {
    echo $record['message'];
}

虽然我建议用SQL订购,因为它会更快。