0

我有兴趣制作一个 PHP 博客,我知道如何制作一个 php 表单将内容放入 MySQL 数据库,但我想知道一些事情。

假设我在数据库中有 5 个帖子,这些帖子显示在网页上,但是在这五个帖子之后,我想添加一个新帖子并使其仅显示这六个帖子中的五个,并为额外的一个。

有点像谷歌如何不在一个页面上显示所有结果,但很多。我该怎么做?

谢谢!

4

1 回答 1

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>";
} 

然后您的第二页需要计算正确的偏移量。例如

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

然后执行如下查询以获取接下来的五个帖子。LIMIT 之后的第一个数字应该是上面计算的数字。LIMIT 5,5 表示在第五个结果之后开始,最多再获得五个。MySQL 文档

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