我有兴趣制作一个 PHP 博客,我知道如何制作一个 php 表单将内容放入 MySQL 数据库,但我想知道一些事情。
假设我在数据库中有 5 个帖子,这些帖子显示在网页上,但是在这五个帖子之后,我想添加一个新帖子并使其仅显示这六个帖子中的五个,并为额外的一个。
有点像谷歌如何不在一个页面上显示所有结果,但很多。我该怎么做?
谢谢!
您需要更改获取帖子的查询以使用 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>";
}
然后您的第二页需要计算正确的偏移量。例如
$offset = $_GET['page'] * $posts_per_page - $posts_per_page;
然后执行如下查询以获取接下来的五个帖子。LIMIT 之后的第一个数字应该是上面计算的数字。LIMIT 5,5 表示在第五个结果之后开始,最多再获得五个。MySQL 文档
SELECT * FROM posts order by id desc LIMIT 5,5