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)
答案 0 :(得分:3)
您应该在原始SQL查询中定义数据集的顺序。
对于ORDER BY子句,<强>更新强>
似乎OP需要20条最新消息,但是反过来命令。然后你需要执行这样的子查询:
SELECT `message`
FROM (SELECT * FROM `table`
ORDER BY `id` DESC
LIMIT 20) AS `i`
ORDER BY `i`.`id` ASC;
答案 1 :(得分:1)
获取记录后您可以撤消返回的数组
答案 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中进行排序,因为它会更快。