在html页面上反转mysql_fetch_array的显示

时间:2012-09-07 20:52:33

标签: php mysql

我有一个讨论类型页面,用户可以在其中输入对不同主题的回复。为此,我有一个表名回复,其字段为 replyID,topicID,userID,replybody,time

在页面上,我显示结果,我使用这个php命令:

$run = mysql_query("SELECT * FROM replies WHERE topicID = $topicnumber ORDER BY time DESC Limit 5");

while($data= mysql_fetch_array($run)){
// do formatting and display data 
}

正如您所看到的,该页面最初只显示一个主题的5个回复(如果感兴趣,用户点击后会访问显示所有回复的页面)。

事情是,上面的代码正确显示了最近的5个回复,但我想改变其显示的顺序。它显示最近的回复最多,旧的回复显示为我们下降,但我想更改此顺序,显示最近的回复最底部。

我认为我在这里错过了一个非常简单的观点,因为大多数网站都有这个功能,最近大多数评论都有所下降,但是,嘿,“毫无疑问是小的。”

2 个答案:

答案 0 :(得分:2)

我不认为在sql中这很容易。

我只是将结果加载到数组中并使用array_reverse()来反转顺序。然后,您可以循环遍历数组并像现在一样显示值。

否则我认为您需要执行2个查询,一个用于获取总金额,然后一个用于将结果集限制为最后x项。

答案 1 :(得分:0)

使用嵌套查询来反转SQL中的顺序:

SELECT *
FROM (
    SELECT * FROM replies WHERE topicID = $topicnumber ORDER BY time DESC Limit 5
) AS a
ORDER BY time ASC

内部查询将返回最近的5条记录,而外部查询将反转这5条记录的排序顺序。