所以,我有這個數據庫的權利,有一些字段叫做'id','title'和'message'。現在我在數據庫中獲得了700條消息。所以我想要做的是,設置每頁最多50條消息標題的限制,並製作多個頁面......我該怎麼做?從一個MySQL查詢中創建多個頁面
我只知道拿到的第一頁,使用LIMIT
...
所以,我有這個數據庫的權利,有一些字段叫做'id','title'和'message'。現在我在數據庫中獲得了700條消息。所以我想要做的是,設置每頁最多50條消息標題的限制,並製作多個頁面......我該怎麼做?從一個MySQL查詢中創建多個頁面
我只知道拿到的第一頁,使用LIMIT
...
正如你猜,你必須使用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
...
你的PHP文件可能會收到一個GET參數是頁碼。
然後你用LIMIT($ page_number * $ messages_per_page),$ messages_per_page(僞代碼)進行查詢。你的情況
$ messages_per_page = 50。 $ PAGE_NUMBER從GET參數,消毒後推斷,第一頁是頁碼0
啊,太好了!但是,我怎麼能添加一個菜單?我只獲得1/14頁的鏈接? – Thew 2011-02-26 16:09:00
謝謝,工作;) – Thew 2011-02-26 16:40:11
不客氣:-)玩得開心! – 2011-02-26 16:41:10