0

我有一个讨论类型页面,用户可以在其中输入他们对不同主题的回复。为此,我有一个表名回复字段回复ID、主题 ID、用户 ID、回复正文、时间

在显示结果的页面上,我使用以下 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 个回复,但我想更改它的显示顺序。它在顶部显示最近的回复,并且在我们向下时显示较旧的回复,但我想更改此顺序,在底部显示最近的回复。

我想我在这里遗漏了一个非常简单的观点,因为大多数网站都有这个功能,最近大多数评论都会下降,但是嘿,“问题不大”。

4

2 回答 2

2

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

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

否则,我认为您需要进行 2 次查询,一次查询总金额,然后一次查询将结果集限制为最后一项x

于 2012-09-07T20:58:32.467 回答
0

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

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

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

于 2012-09-07T21:08:18.393 回答