0

PHP ブログの作成に興味があり、PHP フォームでコンテンツを MySQL データベースに入れる方法を知っていますが、何か疑問に思っています。

データベースに 5 つの投稿があり、それが Web ページに表示されていたとします。しかし、その 5 つの後、新しい投稿を追加して、6 つのうちの 5 つだけを表示し、そのための 2 つ目の「ページ」を作成したいとします。余分なもの。

Google がすべての結果を 1 ページに表示するのではなく、多くの結果を表示する方法に似ています。どうすればいいですか?

ありがとう!

4

1 に答える 1

1

LIMIT と ORDER BY を使用するように投稿を取得するクエリを変更する必要があります

最初のページに

SELECT * from posts ORDER BY id DESC LIMIT 5;

これにより、最新の投稿が取得され (整数 ID が増加すると仮定)、取得できるのは 5 つだけに制限されます。

次に、表示するページ数がわかるように、行数をフェッチする別のクエリが必要です。

SELECT COUNT(*) FROM posts;

クエリの結果は、次のようなコードで使用されます。

$num_pages = $post_count / $posts_per_page;
for($i=0; $num_pages < $i; $i++)
{
    print "<a href='?page=$i'>page $i</a>";
} 

次に、2 ページ目で適切なオフセットを計算する必要があります。例えば

$offset = $_GET['page'] * $posts_per_page - $posts_per_page;

次に、以下のようなクエリを実行して、次の 5 つの投稿を取得します。LIMIT の後の最初の数値は、上で計算した数値でなければなりません。LIMIT 5,5 は、5 番目の結果の後に開始し、さらに 5 つまで取得することを意味します。MySQL ドキュメント

SELECT * FROM posts order by id desc LIMIT 5,5
于 2013-03-06T23:13:24.203 に答える