从mysql_fetch_assoc()以相反的顺序回显

al1*_*1en 2 php mysql

好的,这就是诀窍.在查询中,我从名为messages的表中获得了正确的结果.(它按照相反的顺序获取按时间排序的最后10条消息)这里是查询:

$query = mysql_query("SELECT time, username, message
                      FROM messages ORDER BY time DESC LIMIT 10");
Run Code Online (Sandbox Code Playgroud)

而后来这些消息通过ajax打印在div中

while ($item = mysql_fetch_assoc($query)) {
    echo $item['time']." - ".$item['username']." - ".$item['message'];
}
Run Code Online (Sandbox Code Playgroud)

但打印结果我只想按相反的顺序打印它们.提示:如果我在ORDER BY子句中使用ASC,则不会获得最后插入的消息.

这有可能在PHP内部吗?

Rik*_*esh 8

存储您的数据而不是使用array_reverse,

while($row = mysql_fetch_assoc($result)){
    $items[] = $row;
}

$items = array_reverse($items ,true);

foreach($items as $item){
   echo $item['time']." - ".$item['username']." - ".$item['message'];
}
Run Code Online (Sandbox Code Playgroud)