2011-02-26 60 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