我有兴趣制作一个PHP博客,我知道如何制作一个PHP表单将内容放入MySQL数据库,但我想知道一些事情。
假设我在数据库中有5个帖子,并且显示在网页上,但在这五个帖子之后我想添加一个新帖子并让它只显示其中的五个,并制作第二个“页面“额外的一个。
有点像谷歌没有在一个页面上显示所有结果,但很多。我该怎么做?
谢谢!
答案 0 :(得分:1)
您需要更改提取帖子的查询以使用LIMIT和ORDER BY
在第一页上你会有
SELECT * from posts ORDER BY id DESC LIMIT 5;
这会获得最新的帖子(假设一个递增的整数ID),并且限制只能获得其中的五个。
然后,您需要一个单独的查询来获取行数,以便知道要显示的页数:
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>";
}
然后您的第二页需要计算适当的偏移量。 e.g。
$offset = $_GET['page'] * $posts_per_page - $posts_per_page;
然后执行如下所示的查询以获得接下来的五个帖子。 LIMIT之后的第一个数字应该是上面计算的数字。 LIMIT 5,5表示在第五个结果之后开始,最多获得五个。 MySQL Docs
SELECT * FROM posts order by id desc LIMIT 5,5