反向循环

时间:2013-10-31 10:23:23

标签: php

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

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

SQL-DESC LIMIT 20 获取最近20条消息

但我的聊天框是反向打印

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

3 个答案:

答案 0 :(得分:3)

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

对于ORDER BY子句,

See documentation

  

<强>更新

似乎OP需要20条最新消息,但是反过来命令。然后你需要执行这样的子查询:

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

答案 1 :(得分:1)

获取记录后您可以撤消返回的数组

http://us1.php.net/array_reverse

答案 2 :(得分:0)

如果您真的想要反转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中进行排序,因为它会更快。