按时间顺序排列评论列表

时间:2008-12-06 00:11:17

标签: sorting html-helper alphabetized

我想按时间顺序对电影评论列表进行排序。我们有两个选项供用户选择,按时间顺序排列和按字母顺序排列。页面默认为按字母顺序排列,但是当人们点击按时间顺序排列的选项时,没有任何反应。

以下是我们现在的代码:

// category 3 is 'reviews', category 12 is 'dvd reviews'
                if (($GLOBALS["CategoryId"] == 3 || $GLOBALS["CategoryId"] == 12) && !isset($_GET['unsort']))
                {
                    $output = AL_HELPER::GetArticles($articleResult);
                }
                else
                {
                    $output = AL_HELPER::GetArticlesABC($articleResult);
                }

我做的是触发两个ifs。将GetArticles放在第一位,将GetArticlesABC放在第二位 - 意味着它看起来像这样:

// category 3 is 'reviews', category 12 is 'dvd reviews'
                if (($GLOBALS["CategoryId"] == 3 || $GLOBALS["CategoryId"] == 12) && !isset($_GET['unsort']))
                {
                    $output = AL_HELPER::GetArticlesABC($articleResult);
                }
                else
                {
                    $output = AL_HELPER::GetArticles($articleResult);
                }

确实按时间顺序对评论进行了排序,但它删除了所有按字母顺序排列的选项。从本质上讲,它是一长串按时间顺序排列的评论。很明显,这不是我们想要的。

有谁知道如何限制它在页面上列出的项目数量?或者也许这里需要一种完全不同的方法,如果有的话,还有什么建议吗?

1 个答案:

答案 0 :(得分:1)

限制每页的结果数,如果使用后端数据库和SQL就像使用LIMIT运算符只检索一定数量的结果一样简单。然后,您可以通过在页面之间传递一个变量来实现下一个/上一个操作,这些变量与您提取的结果集相关。

例如:

SELECT <Whatever> FROM <review table> LIMIT 0,10

将检索前10个结果。

SELECT <Whatever> FROM <review table> LIMIT 10,20

将检索下一个10.通过用变量代替数字,你可以实现分页:

SELECT <Whatever> FROM <review table> LIMIT resultIndex,resultIndex+10