したがって、45レコードのテーブルがあり(ただし動的にすることもできます)、mysql_fetch_array()を使用してデータベースからデータを取得します。一度に5つのレコードを出力する最良の方法は何ですか?したがって、レコード1〜5を実行してから、レコード6〜10、11〜15などへのリンクを作成する必要があります。array_chunkで何かをすることを考えましたが、レコード番号を追跡する方法がわかりません。ヒントをありがとう。
3 に答える
クエリにはLIMIT0,5が必要です。Webでphppaginatorを検索します。
クエリで制限と増分オフセットを使用することをお勧めします。その場合、最初のクエリは次のようになります。
select * from TABLE limit 0,5;
リンクには次のオフセットを参照するパラメータがあるため、次のクエリは次のようになります。
select * from TABLE limit 5,5;
等々。
表から最初の5つの結果を取得するには、次のようにします。
SELECT *table
FROMORDERBYtable
。column_name
ASC LIMIT 0、5
- `テーブル`から選択
- 列名の昇順
- Limit 0,5は、0から始まる最初の5つの結果を選択します。
LIMIT 0,5を5,5に変更して、結果を6-10にリストします(レコード5から開始し、5レコード継続します)。
順序付けは、一貫性を確保するための良い習慣です。ほとんどの場合、自動インクリメントの「id」列がある場合は、これを「id」に設定します。結果を日付で並べ替える場合は、タイムスタンプ列で並べ替えます。データを逆にしたい場合は、DESCで注文してください。
PHPセッション、GETパラメーターの受け渡し、一時データベーステーブル、およびおそらく私が見逃したいくつかのクエリがどこにあるかを追跡できます。
その他の解決策:
mysql_fetch_array()から返された配列を使用し、http://php.net/manual/en/language.types.array.phpを利用します
このアプローチの明らかな欠点は、テーブル内のすべての行をフェッチするという事実です。これは、管理可能な数を超える行がない場合は問題ありません。あなたの場合、巨大な列ではないと仮定すると、45で十分です。このアプローチは、データをプリロードする場合にも役立つことがあります。