MySQL データベースを使用して PHP で簡単なメッセージ ボードを作成しています。「LIMIT」操作でメッセージをページあたり 20 に制限しました。
私の URL の例は次のとおりです。http://www.example.com/?page=1
ページが指定されていない場合は、デフォルトで 1 になります。前述のとおり、1 ページあたり 20 の制限がありますが、それが 30 の可能な範囲外であり、2 ページを表示したい場合、10 の結果しか表示されません。この場合、クエリの LIMIT 部分は次のようになりますLIMIT 20,40
- この場合、20 が返されるようにするにはどうすればよいですか?
これを可能な限り MySQL 側に保持することをお勧めします。
編集: 明確にするために、2 ページ目にいる場合、20 ~ 30 行をフェッチしますが、これは 10 行しかないため、代わりに 10 ~ 30 を選択します。
編集: 現在、次のクエリを使用しています。
私のクエリ:
SELECT MOD(COUNT(`ID`),20) AS lmt WHERE `threadID`=2;
SELECT * FROM `msg_messages` WHERE `threadID`=2 LIMIT 20-(20-lmt) , 40-(20-lmt) ;
これに一致するレコードは 30 件あります。