PHPで結果をページネーションする最良の方法は何ですか

StackOverflow https://stackoverflow.com/questions/109027

  •  01-07-2019
  •  | 
  •  

質問

サイト内に多くのページのニュースを表示する必要があります。
リミットを使用してデータベースクエリでページネーションを実行する必要がありますか、それともすべての結果を取得した後にPHPスクリプトで実行する必要がありますか?

役に立ちましたか?

解決

SQL での使用制限!毎回!

そうしないと、必要以上に多くのデータをスローすることになり、スクリプトが不必要に遅くなり、テーブル内のデータ量が増加するにつれてスケーラビリティの問題が発生します。

限界はあなたの友達です!

他のヒント

制限を使用します - できることなら大量のデータをデータベースからスクリプト エンジンに転送したくないでしょう。

これをサポートする DBMS のみを操作したい場合は、DBMS 上で実行してください。将来的に他の DBMS をサポートしたい場合は、現在の DBMS に応じて処理できるレイヤーを間に追加します。

いくつかの既存のライブラリを使用すると、次のことが可能になります。

梨::ページャ は出力に役立ちます。また、データベース トラフィックを必要なものだけに制限するには、付属のサンプルで提供されているラッパーを使用できます。

ここにあります チュートリアル グーグルで検索したら、すべてが載っていました...

使用することに加えて、 LIMIT, 、明示的なものを使用することをお勧めします WHERE 句を使用してオフセットを設定し、その列の結果を順序付けします。例えば:

--- First page (showing first 50 records)
SELECT * FROM people ORDER BY id LIMIT 50
--- Second page
SELECT * FROM people WHERE id > 50 ORDER BY id LIMIT 50

これにより、返される行数が必要な範囲内の行数にさらに制限されます。の使用 WHERE アプローチ(とは対照的に、 LIMIT 別のオフセットを持つ句。例: LIMIT 50,50) を使用すると、他の自然キーを使用してレコードのページングを効果的に処理できます。名前のアルファベット順または日付順。

個人的には、クエリを使用してそれを実行します。もちろん、AJAX などを扱う場合は状況が変わる可能性がありますが、クエリで基本的な制限を実行して結果を出力するだけで簡単で効率的です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top