PHP+Mysql開(kāi)發(fā)分頁(yè)之了解分頁(yè)原理
什么是分頁(yè)技術(shù)
分頁(yè),是一種將所有數(shù)據(jù)分段展示給用戶(hù)的技術(shù).用戶(hù)每次看到的不是全部數(shù)據(jù),而是其中的一部分,如果在其中沒(méi)有找到自習(xí)自己想要的內(nèi)容,用戶(hù)可以通過(guò)制定頁(yè)碼或是翻頁(yè)的方式轉(zhuǎn)換可見(jiàn)內(nèi)容,直到找到自己想要的內(nèi)容為止.其實(shí)這和我們閱讀書(shū)籍很類(lèi)似.
分頁(yè)的意義
分頁(yè)確實(shí)有效,但它一定會(huì)加大系統(tǒng)的復(fù)雜度,但可否不分頁(yè)呢?如果數(shù)據(jù)量少的話當(dāng)然可以.但是對(duì)于企業(yè)信息系統(tǒng)來(lái)說(shuō)數(shù)據(jù)量不會(huì)限制在一個(gè)小范圍內(nèi).如果不顧一切的Select * from某個(gè)表,再將返回的數(shù)據(jù)一古腦的扔給客戶(hù),即使客戶(hù)能夠忍受成千上萬(wàn)足夠讓人眼花繚亂的表格式數(shù)據(jù),繁忙的網(wǎng)絡(luò),緊張的服務(wù)器也會(huì)提出它們無(wú)聲的抗議,甚至有時(shí)會(huì)以徹底的罷工作為終結(jié).這個(gè)結(jié)局有點(diǎn)像古代為所欲為的暴君和他忍無(wú)可忍的臣民之間的故事.
??程序員不是暴君,他希望程序使生活變得更好而不是更糟.考慮到企業(yè)信息系統(tǒng)多是三層甚至更多層架構(gòu)的事實(shí),程序員在向客戶(hù)展示數(shù)據(jù)時(shí)都應(yīng)該采取分頁(yè)的形式.如果他不想被抱怨淹沒(méi)或是半夜被電話驚醒的話.
如何實(shí)現(xiàn)分頁(yè)
所謂分頁(yè)顯示,也就是講數(shù)據(jù)庫(kù)中的結(jié)果集,一段一段顯示出來(lái)在這里我們就需要用到Mysql語(yǔ)句中的limit命令
怎么分段,當(dāng)前在第幾段 (每頁(yè)有幾條,當(dāng)前再第幾頁(yè))
前10條記錄:
select * from table limit 0,10
第11至20條記錄:
select * from table limit 10,10
第21至30條記錄:
select * from table limit 20,10
從上面可以看出規(guī)律
(當(dāng)前頁(yè)數(shù) - 1 )X 每頁(yè)條數(shù) , 每頁(yè)條數(shù)
Select * from table limit ($Page- 1) * $PageSize, $PageSize
所需的PHP文件
conn.php ? 連接數(shù)據(jù)庫(kù)文件
mupage.php 分頁(yè)完整文件
所需的mysql數(shù)據(jù)庫(kù)
首先我們來(lái)整理下,分頁(yè)功能的開(kāi)發(fā)思路與流程
連接數(shù)據(jù)庫(kù)
從數(shù)據(jù)庫(kù)傳出我們想要的數(shù)據(jù)
使用sql語(yǔ)句編寫(xiě)獲取分頁(yè)數(shù)據(jù)
把sql語(yǔ)句傳入我們的數(shù)據(jù)庫(kù)
處理我們得到的數(shù)據(jù)在頁(yè)面上展示出來(lái)
獲取數(shù)據(jù)總數(shù),計(jì)算頁(yè)數(shù)和顯示的數(shù)據(jù)以及偏移量。
將分頁(yè)數(shù)據(jù)初始化,對(duì)頭部和尾部省略處理
設(shè)置分頁(yè)條樣式顯示即可