4

PHP/MySQLi のページネーションの最低限のものは何ですか? 私はオンラインで検索し、ページネーションを行う方法を学ぼうとしましたが、すべての例が巨大であるため、そこから始めて、それらを理解するために自分の道を歩むことができるようにするには、最低限何が必要か疑問に思っていました.

私が試みた場所(例は私が見たすべてではありません); https://github.com/BenGriffiths/pdo-mysqli-pagination ; http://bluedogwebservices.com/php-pagination-with-mysqli/ ;

1 つ目は非常に長い (一見) ですが、私には意味がありました。2 つ目は短かったですが、あまり意味がありませんでした。まだビデオ チュートリアルを探していないので、それらも検索します。 .

4

3 に答える 3

3

ページネーションは比較的単純なので、できるだけ簡単に説明しようと思います。

まず、ほとんどのページネーション シナリオで遭遇する 5 つの用語またはフレーズ (またはパラメーター) を次に示します。

  • 制限 (またはページあたりの結果)
  • オフセット (一連の結果/レコードを開始する場所)
  • 現在のページ
  • 合計結果
  • ページ数

以下のクエリの例を見てください。

SELECT * FROM products WHERE active = 1 LIMIT 0 , 25

上記の SQL では (mysqli で動作するはずです):

  • 25 => 制限 (またはページあたりの結果)
  • 0 => オフセットです (つまり、結果またはレコード 0 から開始)

つまり、

give me the results 0 - 24, i.e. the first 25 results

したがって、1000 レコードの製品テーブルがあり、ページごとに 25 レコードのみを表示する Web ページにこれらを表示する必要があると仮定します。最初のページでは、これらは上記の 5 つの用語の値になります。

  • 制限 (ページあたりの結果) => 25
  • オフセット => 0
  • 現在のページ => 1
  • 合計結果 => 1000
  • ページ数 => 合計結果 / 制限 => 40

通常、オフセットは現在のページと制限に基づいて動的に計算されるため、製品結果のページ 1 の場合、オフセットは次のようになります。

offset = (current page * limit) - limit
i.e. (1 * 25) - 25 = 0

したがって、mysqli クエリは次のようになります。

SELECT * FROM products WHERE active = 1 LIMIT [OFFSET] , [LIMIT]

i.e. SELECT * FROM products WHERE active = 1 LIMIT 0 , 25

商品結果のページ 2 に同じ原則を使用すると、オフセット (または開始結果) は次のようになります。

offset = (current page * limit) - limit
i.e. (2 * 25) - 25 = 25

したがって、mysqli クエリは次のようになります。

SELECT * FROM products WHERE active = 1 LIMIT [OFFSET] , [LIMIT]

i.e. SELECT * FROM products WHERE active = 1 LIMIT 25 , 25

つまり、

give me the results 25 - 49, i.e. the next 25 results starting from record 25

他の項には次の値があります。

  • 制限 (またはページあたりの結果) => 25
  • 現在のページ => 2
  • 合計結果 => 1000
  • ページ数 => 40

ページネーションの最も単純な使用例では、変更されるパラメーターはオフセットと現在のページのみです。クエリにフィルターを導入すると、前の 2 つに加えて、結果の合計とページ数も変化する可能性があります。

上記の説明が、ページネーションの基本的な理解に役立つことを願っています。

于 2013-08-04T16:56:05.473 に答える