php分頁類及使用方法_第1頁
php分頁類及使用方法_第2頁
php分頁類及使用方法_第3頁
php分頁類及使用方法_第4頁
php分頁類及使用方法_第5頁
已閱讀5頁,還剩3頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、翻頁步驟1.每頁顯示多少條:已知2.一共多少條:數據表中一共條數(帶條件)。使用 count(*)3.一共多少頁:計算出來4.循環出分頁代碼:組裝成鏈接形式5.當前頁,從第幾條開始:(當前頁碼-1)*每頁顯示多少條翻頁類使用方法require_once(dirname(_FILE_)."/lib/page.php");require_once(dirname(_FILE_)."/lib/mysql.php");$dbMysql=MySQL:getInstance(':3306','root','&

2、#39;,'myweb');$showNum=2;/每頁顯示多少條$sql="select count(*) as countAs from news"/查詢一個多少條$allNum=$dbMysql->getRowsRst($sql);$allNum=$allNum'countAs'$page=new page($showNum,$allNum,6);/實例化翻頁類$pageHtml=$page->getCode();/獲得翻頁代碼$sql="select * from news order by id desc li

3、mit ".$page->getlimitStartNum().",".$showNum;/查詢新聞列表:獲得從第幾條開始$newsList=$dbMysql->getRowsArray($sql);foreach($newsList as $key=>$val)echo $val'id','-',$val'title',"<br>n"echo $pageHtml;/輸出翻頁代碼<?php/* 翻頁抽象類*/abstract class abstractPage

4、/protected $GP;/ G/P:$_GET/$_POST.。取$_GET/$_POST作為翻頁數組protected $pageIdName='pageId'/翻頁的$_GET/$_POST數組鍵名protected $accurate;/ false/1/2:不精確計算頁碼/精確計算,前面多,并且固定連接數目/精確計算,后面多 并且固定連接數目protected $showNum;/每頁顯示多少條protected $allNum;/一共多少條protected $allPageNum;/一共多少頁protected $nowPageNum;/當前第幾頁protec

5、ted $lastPageNum;/上一頁頁碼protected $nextPageNum;/下一頁頁碼protected $linkStartPageNum;/循環連接的的開始頁碼protected $linkEndPageNum;/循環連接的結束頁碼protected $limitStartNum;/給mysql查詢語句用的 limit 開始值protected $showLinkNum;/顯示幾個連接/*構造函數* paraminteger$showNum每頁顯示多少條* paraminteger$allNum一共多少條* paraminteger$showLinkNum顯示連接數* p

6、araminteger$accurate是否精確連接數* paramstring$GP使用$_GET/$_POST* paramstring$pageIdName翻頁鍵名*/public function _construct($showNum,$allNum,$showLinkNum=10,$accurate=1,$GP='G',$pageIdName='pageId')$this->showNum=$showNum;$this->allNum=$allNum;$this->showLinkNum=$showLinkNum;$this->

7、;accurate=$accurate;$this->GP=$GP;$this->pageIdName=$pageIdName;$this->rule();/*翻頁規則方法*/private function rule()if($this->GP='G')/判斷使用$_GET/$_POST$this->nowPageNum=!empty($_GET$this->pageIdName)?$_GET$this->pageIdName:1;/當前第幾頁else$this->nowPageNum=!empty($_POST$this-&g

8、t;pageIdName)?$_POST$this->pageIdName:1;$this->allPageNum=ceil($this->allNum/$this->showNum);/一共多少頁$this->nowPageNum<1 &&$this->nowPageNum=1;/對當前頁碼進行驗證($this->nowPageNum>$this->allPageNum && $this->allPageNum!=0) &&$this->nowPageNum=$this-&

9、gt;allPageNum;$this->limitStartNum=($this->nowPageNum-1)*$this->showNum;/limit開始值$this->lastPageNum=$this->nowPageNum-1;/上一頁$this->nextPageNum=$this->nowPageNum+1;/下一頁$this->lastPageNum<1 && $this->lastPageNum=0;/合法化上下頁頁碼$this->nextPageNum>$this->allPag

10、eNum && $this->nextPageNum=0;$pNum=ceil($this->showLinkNum-1)/2);/當前頁碼前后,平均約應該有幾個連接$this->linkStartPageNum=$this->nowPageNum-$pNum;$this->linkEndPageNum=$this->nowPageNum+$pNum;if($this->accurate=false)/不精確頁碼 $this->validity_1();else$this->accurate($pNum);/精準計算頁碼個數

11、 $this->validity_2();/*精準計算連接數* paraminteger$pNum當前頁前后的大約連接數*/private function accurate($pNum)if($pNum*2 +1!= $this->showLinkNum )/如果不能整除if($this->accurate=1 )/如果前面多-$this->linkEndPageNum;else/如果后面多+$this->linkStartPageNum;/*對開始頁/結束頁的合法性1*/private function validity_1()/注釋測試 同時_1$this-

12、>linkStartPageNum<1 && $this->linkStartPageNum=1;/對連接循環的開始/結束頁碼合法化$this->linkEndPageNum>$this->allPageNum && $this->linkEndPageNum=$this->allPageNum;/*對開始頁/結束頁的合法性2*/private function validity_2()/注釋測試 同時_1if(0<$pNum=1-$this->linkStartPageNum)/判斷開始頁碼非法多少$

13、this->linkStartPageNum+=$pNum;/去除開始頁碼非法量$pNum> $this->allPageNum-$this->linkEndPageNum && $pNum=$this->allPageNum-$this->linkEndPageNum;/判斷結束頁碼,非法量是否大于總頁數-結束頁$this->linkEndPageNum+=$pNum;/增加結束頁碼if(0<$pNum=$this->linkEndPageNum-$this->allPageNum)/判斷結束頁碼非法多少$this-

14、>linkEndPageNum-=$pNum;/去除結束頁碼非法量$pNum> $this->linkStartPageNum-1 && $pNum=$this->linkStartPageNum-1;/判斷開始頁碼,非法量是否大于開始頁數-1$this->linkStartPageNum-=$pNum;/增加開始頁碼/*對開始頁/結束頁的合法性1* returnstring返回翻頁的url*/final protected function getUrl() $url="http:/".$_SERVER"HTTP_H

15、OST".($_SERVER"SERVER_PORT"="80")?"":$_SERVER"SERVER_PORT").$_SERVER"PHP_SELF".'?'if(!empty($_GET) /如果有get值$g=$_GET;if(array_key_exists($this->pageIdName,$g) unset($g$this->pageIdName); $url.=http_build_query($g).(empty($g)?'&#

16、39;:'&');return $url;/*渲染模板html* paramarray$templatePath模板路徑* returnstring返回html代碼*/protected function renderHtml($templatePath)if($this->allNum=0) return ''$url=$this->getUrl();ob_start();require_once($templatePath);return ob_get_clean();/*抽象方法:創建翻頁html* paramarray$sort排序數

17、組。為了顯示順序* returnstring返回html代碼*/abstract protected function createHtml(array $sort=array('first','last','links','next','end','allPageNum');/*返回mysql limit 開始條數* returnstring返回html代碼*/public function getlimitStartNum()return $this->limitStartNum;/*獲得

18、翻頁代碼* returnstring返回html代碼*/public function getCode($sort=array(),$put=false,$templatePath='')if(!empty($templatePath)if($put=true)echo $this->renderHtml($templatePath);elsereturn $this->renderHtml($templatePath);elseif($put=true)echo $this->createHtml($sort);elsereturn $this->cr

19、eateHtml($sort);/* 翻頁具體實現類*/class page extends abstractPage/* 創建html* paramarray$sort排序數組。為了顯示順序* returnstring返回html代碼*/protected function createHtml(array $sort=array('first','last','links','next','end','allPageNum')if($this->allNum=0)$html= '&

20、#39;else$url=$this->getUrl();if(1=$this->nowPageNum)/第一頁$h'first'="第一頁n"else$h'first'="<a href="".$url.$this->pageIdName."=1">第一頁</a>n"if(!empty($this->lastPageNum)/上一頁$h'last'="<a href="".$url.

21、$this->pageIdName."=".$this->lastPageNum."">上一頁</a>n"else$h'last'="上一頁n"$h'links'=""/循環的連接for($i=$this->linkStartPageNum;$i<=$this->linkEndPageNum;$i+)if($i=$this->nowPageNum)$h'links'.=$i."n"else$h'links'.="<a href="".$url.$this->pageIdName."=".$i.""&g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論