2013-03-06 78 views
0

我对制作PHP博客感兴趣,并且我知道如何使php表单将内容放入MySQL数据库,但我想知道一些事情。制作PHP和MySQL博客将旧帖子移动到不同的页面?

假设我有5个职位在数据库中,并且显示在网页上,但在这五个职位之后,我想添加一个新职位,并使其仅显示五个职位,然后制作第二个“页面“为额外的一个。

有点像谷歌如何不在一页上显示所有结果,但很多。我将如何做到这一点?

谢谢!

+0

是啊,你会如何做到这一点?寻找mysql LIMIT,编写一些代码,试试吧,回来 – michi 2013-03-06 23:10:53

+0

如果你有一个MySQL数据库,你可以用SELECT ... FROM ... WHERE ... ORDER BY something LIMIT 0,5 '。因此,尽管数据库包含更多项目,但您只能获得五个结果。 – fedorqui 2013-03-06 23:10:55

+0

@fedorqui是的,我知道如何做到这一点,但是当他们击中另一个页面按钮时,我将如何检索五个? – 2013-03-06 23:14:58

回答

1

您需要更改您的查询获取的帖子使用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 
+1

好的很酷,但是我怎么会在底部加载一个会加载更多的按钮?我只是使用最后一个查询? – 2013-03-06 23:52:35

+1

是的。只需将逗号前面的数字设置为适合的内容,取决于您所在的页面。所以在我的例子中(有些缺失),我使用了链接和一个GET参数。如果你想要一个按钮而不是链接,那么你将使用提交按钮输出一个隐藏的表单值,并使用_POST而不是_GET来计算偏移量 – dsas 2013-03-07 00:11:49

相关问题