2011-02-26 64 views
3

所以,我有这个数据库的权利,有一些字段叫做'id','title'和'message'。现在我在数据库中获得了700条消息。所以我想要做的是,设置每页最多50条消息标题的限制,并制作多个页面......我该怎么做?从一个MySQL查询中创建多个页面

我只知道拿到的第一页,使用LIMIT ...

回答

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:

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每页,你必须五十零分之七百页面;-)
所以,这样的事情应该做的伎俩:

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 
... 
+0

啊,太好了!但是,我怎么能添加一个菜单?我只获得1/14页的链接? – Thew 2011-02-26 16:09:00

+0

谢谢,工作;) – Thew 2011-02-26 16:40:11

+0

不客气:-)玩得开心! – 2011-02-26 16:41:10

0

你的PHP文件可能会收到一个GET参数是页码。

然后你用LIMIT($ page_number * $ messages_per_page),$ messages_per_page(伪代码)进行查询。你的情况

$ messages_per_page = 50。 $ PAGE_NUMBER从GET参数,消毒后推断,第一页是页码0