所以,我拥有这个数据库,有一些名为'id','title'和'message'的字段。现在我在数据库中得到了700条消息。所以我想做的就是设置每页最多50个消息标题的限制,并制作多个页面......我该怎么做?
我只知道使用LIMIT
...
答案 0 :(得分:9)
正如您猜测的那样,您必须使用LIMIT
keyword。
它接受两个值(引用):
在您的情况下,您将不得不在第一页使用这样的内容:
select * from your_table order by ... limit 0, 50
然后,第二页:
select * from your_table order by ... limit 50, 50
第三个:
select * from your_table order by ... limit 100, 50
等等; - )
在评论后修改以获取页码,您必须从您的网址接收,如下所示:
http://www.example.com/page.php?pagenum=2
然后,您将计算限制的第一个值:
$offset = 50 * intval($_GET['pagenum']);
并将其注入您的查询中:
select * from your_table order by ... limit $offset, 50
构建不同页面的URL现在需要获取以下URL:
http://www.example.com/page.php?pagenum=0
http://www.example.com/page.php?pagenum=1
http://www.example.com/page.php?pagenum=2
...
如果你知道你有700个元素,每页50个,你将有700/50页;-)
所以,这样的事情应该可以解决问题:
for ($i=0 ; $i<700/50 ; i++) {
// Use http://www.example.com/page.php?pagenum=$i as URL
}
当然,700是一个可能会改变的值,不应该是硬编码的:它应该使用count
查询从数据库中确定:
select count(*) as total
from your_table
...
答案 1 :(得分:0)
您的PHP文件可能会收到一个GET参数作为页码。
然后使用LIMIT($ page_number * $ messages_per_page),$ messages_per_page(伪代码)进行查询。
在您的情况下,$ messages_per_page = 50。 $ page_number是从GET参数推断出来的,清理后,第一页是第0页。