1

映画のレビューのリストを時系列で並べ替えようとしています。ユーザーが選択できるオプションは、時系列順とアルファベット順の 2 つです。ページはデフォルトでアルファベット順に表示されますが、ユーザーが時系列オプションをクリックしても何も起こりません。

現在のコードは次のとおりです。

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

私がしたことは、2 つの if をフリップフロップすることでした。GetArticles を最初に、GetArticlesABC を 2 番目に配置すると、次のようになります。

// 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 に答える