1

我正在尝试按时间顺序对电影评论列表进行排序。我们有两个选项可供用户选择,按时间顺序排列和按字母顺序排列。该页面默认按字母顺序排列,但是当人们单击按时间顺序排列的选项时,什么也没有发生。

这是我们现在拥有的代码:

// 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);
                }

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

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

4

1 回答 1

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
于 2008-12-07T01:38:16.980 回答