我对制作PHP博客感兴趣,并且我知道如何使php表单将内容放入MySQL数据库,但我想知道一些事情。制作PHP和MySQL博客将旧帖子移动到不同的页面?
假设我有5个职位在数据库中,并且显示在网页上,但在这五个职位之后,我想添加一个新职位,并使其仅显示五个职位,然后制作第二个“页面“为额外的一个。
有点像谷歌如何不在一页上显示所有结果,但很多。我将如何做到这一点?
谢谢!
我对制作PHP博客感兴趣,并且我知道如何使php表单将内容放入MySQL数据库,但我想知道一些事情。制作PHP和MySQL博客将旧帖子移动到不同的页面?
假设我有5个职位在数据库中,并且显示在网页上,但在这五个职位之后,我想添加一个新职位,并使其仅显示五个职位,然后制作第二个“页面“为额外的一个。
有点像谷歌如何不在一页上显示所有结果,但很多。我将如何做到这一点?
谢谢!
您需要更改您的查询获取的帖子使用LIMIT和ORDER BY
在第一页上,你将有
SELECT * from posts ORDER BY id DESC LIMIT 5;
这得到了最近发表的文章(假设一个递增的整数ID)并限制只获得其中五个。
然后,您需要一个单独的查询,让你知道多少页显示获取的行数:
查询的结果将在代码中使用像这样:
$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;
然后执行一个如下所示的查询来获取下一个5个帖子。 LIMIT之后的第一个数字应该是上面计算的数字。限制5,5意味着在第五个结果之后开始,最多再获得五个结果。 MySQL Docs
SELECT * FROM posts order by id desc LIMIT 5,5
好的很酷,但是我怎么会在底部加载一个会加载更多的按钮?我只是使用最后一个查询? – 2013-03-06 23:52:35
是的。只需将逗号前面的数字设置为适合的内容,取决于您所在的页面。所以在我的例子中(有些缺失),我使用了链接和一个GET参数。如果你想要一个按钮而不是链接,那么你将使用提交按钮输出一个隐藏的表单值,并使用_POST而不是_GET来计算偏移量 – dsas 2013-03-07 00:11:49
是啊,你会如何做到这一点?寻找mysql LIMIT,编写一些代码,试试吧,回来 – michi 2013-03-06 23:10:53
如果你有一个MySQL数据库,你可以用SELECT ... FROM ... WHERE ... ORDER BY something LIMIT 0,5 '。因此,尽管数据库包含更多项目,但您只能获得五个结果。 – fedorqui 2013-03-06 23:10:55
@fedorqui是的,我知道如何做到这一点,但是当他们击中另一个页面按钮时,我将如何检索五个? – 2013-03-06 23:14:58