亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦>知識大全>方法百科>產(chǎn)品使用方法>

      php分頁類的使用方法

      時(shí)間: 陳哲凡673 分享

        PHP分頁類是一個(gè)比較有用的類,如何靈活的運(yùn)用這個(gè)類來幫助我們完成功能的實(shí)現(xiàn)是一個(gè)程序員必備的知識。下面由學(xué)習(xí)啦小編整理了幾種php分頁類的使用方法,希望對大家有所幫助。

        php分頁類的使用方法(一)

        <?php

        /*

        分頁類 用于實(shí)現(xiàn)對多條數(shù)據(jù)分頁顯示

        version:1.0

        Date:2013-10-20

        */

        /*

        調(diào)用非常方便,先連接好數(shù)據(jù)庫,直接傳人查詢的sql字符串即可,也可以指定每頁顯示的數(shù)據(jù)條數(shù)

        例如$pages = new Page('SELECT * FROM `zy_common_member`');

        或 $pages = new Page('SELECT * FROM `zy_common_member`', 10);

        */

        class Page{

        private $curPage;

        private $totalPages;//數(shù)據(jù)總共分多少頁顯示

        private $dispNum;//每頁顯示的數(shù)據(jù)條數(shù)

        private $queryStr;//查詢的SQL語句

        private $limitStr;//查詢語句后面的limit控制語句

        /*

        構(gòu)造函數(shù)

        $queryStr 查詢數(shù)據(jù)的SQL語句

        $dispNum 每頁顯示的數(shù)據(jù)條數(shù)

        */

        public function __construct($queryStr='',$dispNum=10){

        $result = mysql_query($queryStr);

        $totalNum = mysql_num_rows($result);

        $this->dispNum = $dispNum;

        $this->totalPages = ceil($totalNum / $dispNum);

        $this->queryStr = $queryStr;

        $temp = (isset($_GET["curPage"]) ? $_GET["curPage"] : 1);

        $this->setCurPage($temp);

        $this->showCurPage();

        $this->showFoot();

        }

        /*顯示當(dāng)前頁的數(shù)據(jù)內(nèi)容*/

        private function showCurPage(){

        $this->limitStr = ' LIMIT '.(($this->curPage - 1)* $this->dispNum).','.$this->dispNum;

        //echo $this->queryStr.$this->limitStr;

        $result = mysql_query($this->queryStr.$this->limitStr);

        if (!$result)

        {

        if ($this->totalPages > 0)

        {

        echo '查詢出錯(cuò)'.'<br>';

        }

        else

        {

        echo '無數(shù)據(jù)'.'<br>';

        }

        return;

        }

        $cols = mysql_num_fields($result);

        echo '<table border="1">';

        echo '<tr>';

        for($i=0; $i<$cols; $i++)

        {

        echo '<th>';

        echo mysql_field_name($result, $i);

        echo '</th>';

        }

        echo '</tr>';

        while($row = mysql_fetch_assoc($result))

        {

        echo '<tr>';

        foreach($row as $key=>$value)

        {

        echo '<td>';

        echo $value;

        echo '</td>';

        }

        echo '</tr>';

        }

        echo '</table>';

        }

        private function setCurPage($curPage){

        if($curPage < 1)

        {

        $curPage = 1;

        }

        else if($curPage > $this->totalPages)

        {

        $curPage = $this->totalPages;

        }

        $this->curPage = $curPage;

        }

        /*

        顯示分頁頁腳的信息

        如首頁,上一頁,下一頁,尾頁等信息

        */

        private function showFoot(){

        echo '<a href="?curPage=1">首頁</a>';

        echo '<a href="?curPage='.($this->curPage - 1).'">上一頁</a>';

        echo '<a href="?curPage='.($this->curPage + 1).'">下一頁</a>';

        echo '<a href="?curPage='.$this->totalPages.'">尾頁</a>';

        }

        }

        ?>

        php分頁類的使用方法(二)

        < ?php

        //為了避免重復(fù)包含文件而造成錯(cuò)誤,

        加了判斷函數(shù)是否存在的條件:

        if(!function_exists(pageft)){

        //定義函數(shù)pageft(),三個(gè)參數(shù)的含義為:

        //$totle:信息總數(shù);

        //$displaypg:每頁顯示信息數(shù),這里設(shè)置為默認(rèn)是20;

        //$url:分頁導(dǎo)航中的鏈接,除了加入不同的

        查詢信息“page”外的部分都與這個(gè)URL相同。

        //默認(rèn)值本該設(shè)為本頁URL(即$_SERVER

        ["REQUEST_URI"]),但設(shè)置默認(rèn)值的右邊

        只能為常量,所以該默認(rèn)值設(shè)為空字符串,在函數(shù)內(nèi)部再設(shè)置為本頁URL。

        function pageft($totle,$displaypg=20,$url=''){

        //定義幾個(gè)全局變量:

        //$page:當(dāng)前頁碼;

        //$firstcount:(數(shù)據(jù)庫)查詢的起始項(xiàng);

        //$pagenav:頁面導(dǎo)航條代碼,函數(shù)內(nèi)部并沒有將它輸出;

        //$_SERVER:讀取本頁URL“$_SERVER["REQUEST_URI"]”所必須。

        global $page,$firstcount,$pagenav,$_SERVER;

        //為使函數(shù)外部可以訪問這里的“$displaypg”,將它也設(shè)為全局變量。注意一個(gè)變量重新定義,為全局變量后,原值被覆蓋,所以這里給它重新賦值。

        $GLOBALS["displaypg"]=$displaypg;

        if(!$page) $page=1;

        //如果$url使用默認(rèn),即空值,則賦值為本頁URL:

        if(!$url){ $url=$_SERVER["REQUEST_URI"];}

        //URL分析:

        $parse_urlparse_url=parse_url($url);

        $url_query=$parse_url["query"]; //單獨(dú)取出URL的查詢字串

        if($url_query){

        //因?yàn)閁RL中可能包含了頁碼信息,

        我們要把它去掉,以便加入新的頁碼信息。

        //這里用到了正則表達(dá)式

        $url_query=ereg_replace("(^|&)page=$page","",$url_query);

        //將處理后的URL的查詢字串替換原來的URL的查詢字串:

        $url=str_replace($parse_url["query"],$url_query,$url);

        //在URL后加page查詢信息,但待賦值:

        if($url_query) $url.="&page"; else $url.="page";

        }else {

        $url.="?page";

        }

        //頁碼計(jì)算:

        $lastpg=ceil($totle/$displaypg); //最后頁,也是總頁數(shù)

        $page=min($lastpg,$page);

        $prepg=$page-1; //上一頁

        $nextpg=($page==$lastpg ? 0 : $page+1); //下一頁

        $firstcount=($page-1)*$displaypg;

        //開始分頁導(dǎo)航條代碼:

        $pagenav="顯示第 <B>".($totle?($firstcount+1):0)."

        </B>-<B>".min($firstcount+$displaypg,$totle)."

        </B> 條記錄,共 $totle 條記錄<BR>";

        //如果只有一頁則跳出函數(shù):

        if($lastpg<=1) return false;

        $pagenav.=" < a href='$url=1'>首頁< /a> ";

        if($prepg) $pagenav.=" < a href='

        $url=$prepg'>前頁< /a> "; else $pagenav.=" 前頁 ";

        if($nextpg) $pagenav.="

        < a href='$url=$nextpg'>后頁< /a> "; else $pagenav.=" 后頁 ";

        $pagenav.=" < a href='$url=$lastpg'>尾頁< /a> ";

        //下拉跳轉(zhuǎn)列表,循環(huán)列出所有頁碼:

        $pagenav.=" 到第 < select name='topage'

        size='1' onchange='window.location="$url="+this.value'>n";

        for($i=1;$i<=$lastpg;$i++){

        if($i==$page) $pagenav.="<

        option value='$i' selected>$i< /option>n";

        else $pagenav.="<option value='$i'>

        $i< /option>n";

        }

        $pagenav.="< /select> 頁,共 $lastpg 頁";

        }

        }

        ?>

        php分頁類的使用方法(三)

        <?php

        // 方法調(diào)用:

        $pages = new Pages($perpage, $count, $page, 'showpage.php?page'); 創(chuàng)建對象

        $pages->setShowPageNum($num); 設(shè)置顯示的頁數(shù)

        $pages->setCurrentIndexPage($num); 設(shè)置當(dāng)前頁在分頁欄中的位置

        $pages->setFirstPageText($text); 設(shè)置鏈接第一頁顯示的文字

        $pages->setLastPageText($text); 設(shè)置鏈接最后一頁顯示的文字

        $pages->setPrePageText($text); 設(shè)置鏈接上一頁顯示的文字

        $pages->setNextPageText($text); 設(shè)置鏈接下一頁顯示的文字

        $pages->setPageCss($css); 設(shè)置各分頁碼css樣式的class名稱

        $pages->setCurrentPageCss($css); 設(shè)置當(dāng)前頁碼css樣式的class名稱

        $pages->setPageStyle($style); 設(shè)置各分頁碼的樣式,即style屬性

        $pages->setCurrentPageStyle($style); 設(shè)置當(dāng)前頁碼的樣式,即style屬性

        $pages->setLinkSymbol('='); 設(shè)置地址鏈接中頁碼與變量的連接符,如page=2中的“=”

        $pages->isShowFirstAndLast(true); 設(shè)置是否顯示第一頁與最后一頁的鏈接

        $pages->isShowForSimplePage(true); 設(shè)置當(dāng)只有一頁時(shí)是否顯示分頁

        $pageCount = $pages->getTotalPageNum(); 獲取總頁數(shù)

        ?>

        <?php

        //分頁類

        class Pages{

        private $eachDisNums; //每頁顯示的條目數(shù)

        private $nums; //總條目數(shù)

        private $currentPage; //當(dāng)前被選中的頁

        private $showPageNum = 5; //每次顯示的頁數(shù)

        private $curIndexPage = 3; //當(dāng)前頁在分頁中的位置

        private $totalPageNum; //總頁數(shù)

        private $arrPage = array(); //用來構(gòu)造分頁的數(shù)組

        private $subPageLink; //每個(gè)分頁的鏈接

        private $firstPageText = '1..'; //第一頁顯示的文字

        private $lastPageText; //最后一頁顯示的文字

        private $prePageText = '<'; //上一頁顯示的文字

        private $nextPageText = '>'; //下一頁顯示的文字

        private $pageCss = ''; //一般頁的樣式名稱

        private $curPageCss = ''; //當(dāng)前頁的樣式名稱

        private $pageStyle = ''; //一般頁的樣式

        private $curPageStyle = ''; //當(dāng)前頁的樣式

        private $linkSymbol = '='; //url鏈接地址中page與頁數(shù)之間的符號

        private $isShowFirstLast = true; //是否顯示第一頁和最后一頁

        private $isShowForSimplePage = false; //當(dāng)沒有分頁時(shí)(即總條目數(shù)不大于每頁顯示的條目數(shù))是否顯示分頁欄

        /**

        * 設(shè)置顯示的頁數(shù)

        *

        * @param integer $num 顯示的頁數(shù)

        * @return void

        */

        public function setShowPageNum($num){

        $this->showPageNum = $num;

        }

        /**

        * 設(shè)置當(dāng)前頁在分頁欄中的位置

        *

        * @param integer $num 當(dāng)前頁在分頁欄中的位置

        * @return void

        */

        public function setCurrentIndexPage($num){

        $this->curIndexPage = $num;

        }

        /**

        * 設(shè)置鏈接第一頁顯示的文字

        *

        * @param string $text 要顯示的文字

        * @return void

        */

        public function setFirstPageText($text){

        $this->firstPageText = $text;

        }

        /**

        * 設(shè)置鏈接最后一頁顯示的文字

        *

        * @param string $text 要顯示的文字

        * @return void

        */

        public function setLastPageText($text){

        $this->lastPageText = $text;

        }

        /**

        * 設(shè)置鏈接上一頁顯示的文字

        *

        * @param string $text 要顯示的文字

        * @return void

        */

        public function setPrePageText($text){

        $this->prePageText = $text;

        }

        /**

        * 設(shè)置鏈接下一頁顯示的文字

        *

        * @param string $text 要顯示的文字

        * @return void

        */

        public function setNextPageText($text){

        $this->nextPageText = $text;

        }

        /**

        * 設(shè)置各分頁碼css樣式的class名稱

        *

        * @param string $css css樣式名稱

        * @return void

        */

        public function setPageCss($css){

        $this->pageCss = $css;

        }

        /**

        * 設(shè)置當(dāng)前頁碼css樣式的class名稱

        *

        * @param string $css css樣式名稱

        * @return void

        */

        public function setCurrentPageCss($css){

        $this->curPageCss = $css;

        }

        /**

        * 設(shè)置各分頁碼的樣式,即style屬性

        *

        * @param string $style style樣式

        * @return void

        */

        public function setPageStyle($style){

        $this->pageStyle = $style;

        }

        /**

        * 設(shè)置當(dāng)前頁碼的樣式,即style屬性

        *

        * @param string $style style樣式

        * @return void

        */

        public function setCurrentPageStyle($style){

        $this->curPageStyle = $style;

        }

        /**

        * 設(shè)置地址鏈接中頁碼與變量的連接符,如page=2中的“=”

        *

        * @param string $symbol 連接符號

        * @return void

        */

        public function setLinkSymbol($symbol){

        $this->linkSymbol = $symbol;

        }

        /**

        * 獲取總頁數(shù)

        *

        * @access private

        * @return integer

        */

        public function getTotalPageNum(){

        return $this->totalPageNum;

        }

        /**

        * 設(shè)置是否顯示第一頁與最后一頁的鏈接

        *

        * @param boolean $is true:顯示,false:不顯示

        * @return void

        */

        public function isShowFirstAndLast($is){

        $this->isShowFirstLast = $is;

        }

        /**

        * 設(shè)置當(dāng)只有一頁時(shí)是否顯示分頁

        *

        * @param boolean $is true:顯示,false:不顯示

        * @return void

        */

        public function isShowForSimplePage($is){

        $this->isShowForSimplePage = $is;

        }

        /**

        * 構(gòu)造方法

        *

        * @param integer $eachDisNums 每頁顯示的條目數(shù)

        * @param integer $nums 總條目數(shù)

        * @param integer $current_num 當(dāng)前被選中的頁

        * @param integer $showPageNum 每次顯示的頁數(shù)

        * @param integer $subPageLink 每個(gè)分頁的鏈接

        * @param integer $subPage_type 顯示分頁的類型

        * @return void

        */

        public function __construct($eachDisNums, $nums, $currentPage, $subPageLink){

        $this->eachDisNums=intval($eachDisNums);

        $nums = $nums==0 ? 1: $nums;

        $this->nums = intval($nums);

        $this->totalPageNum = ceil($nums/$eachDisNums);

        $this->currentPage =intval($currentPage);

        $this->currentPage = $this->currentPage<=0 ? 1: $this->currentPage;

        $this->currentPage = $this->currentPage > $this->totalPageNum ? 1 : $this->currentPage;

        $this->subPageLink = $subPageLink;

        $this->lastPageText = '..'.$this->totalPageNum;

        }

        public function __destruct(){

        unset($this->eachDisNums);

        unset($this->nums);

        unset($this->currentPage);

        unset($this->showPageNum);

        unset($this->curIndexPage);

        unset($this->totalPageNum);

        unset($this->arrPage);

        unset($this->subPageLink);

        unset($this->firstPageText);

        unset($this->lastPageText);

        unset($this->prePageText);

        unset($this->nextPageText);

        unset($this->pageCss);

        unset($this->curPageCss);

        unset($this->pageStyle);

        unset($this->curPageStyle);

        unset($this->linkSymbol);

        unset($this->isShowFirstLast);

        unset($this->isShowForSimplePage);

        }

        /**

        * 生成分頁

        *

        * @return string

        */

        public function generatePages(){

        $subPageCss2Str = '';

        $isShow = false;

        if($this->totalPageNum == 1){ //只有一頁時(shí)

        if($this->isShowForSimplePage){

        $isShow = true;

        }

        }else{

        $isShow = true;

        }

        if($isShow){

        if($this->currentPage > 1){

        $prewPageUrl = $this->subPageLink.$this->linkSymbol.($this->currentPage-1);

        if($this->isShowFirstLast){

        $firstPageUrl = $this->subPageLink.$this->linkSymbol."1";

        $subPageCss2Str .= '<a href="'.$firstPageUrl.'" class="'.$this->pageCss.'" style="'.$this->pageStyle.'">'.$this->firstPageText.'</a>';

        }

        $subPageCss2Str .= '<a href="'.$prewPageUrl.'" class="'.$this->pageCss.'"style="'.$this->pageStyle.'">'.$this->prePageText.'</a>';

        }

        $a=$this->construct_num_Page();

        for($i=0;$i<count($a);$i++){

        $s=$a[$i];

        if($s == $this->currentPage ){

        $subPageCss2Str .= '<a href="#" class="'.$this->curPageCss.'" style="'.$this->curPageStyle.'">'.$s.'</a>';

        }else{

        $url = $this->subPageLink.$this->linkSymbol.$s;

        $subPageCss2Str .= '<a href="'.$url.'" class="'.$this->pageCss.'" style="'.$this->pageStyle.'">'.$s.'</a>';

        }

        }

        if($this->currentPage < $this->totalPageNum){

        $nextPageUrl = $this->subPageLink.$this->linkSymbol.($this->currentPage+1);

        $subPageCss2Str .= '<a href="'.$nextPageUrl.'" class="'.$this->pageCss.'" style="'.$this->pageStyle.'">'.$this->nextPageText.'</a>';

        if($this->isShowFirstLast){

        $lastPageUrl = $this->subPageLink.$this->linkSymbol.$this->totalPageNum;

        $subPageCss2Str .= '<a href="'.$lastPageUrl.'" class="'.$this->pageCss.'"style="'.$this->pageStyle.'">'.$this->lastPageText.'</a> ';

        }

        }

        }

        return $subPageCss2Str;

        }//End of generatePages() Method

        /**

        * 用來給建立分頁的數(shù)組初始化的函數(shù)。

        *

        * @return array

        */

        private function initArray(){

        for($i=0; $i < $this->showPageNum; $i ++){

        $this->arrPage[$i] = $i;

        }

        return $this->arrPage;

        }//End of initArray() Method

        /**

        * 用來構(gòu)造顯示的條目

        * 即:[1][2][3][4][5][6][7][8][9][10]

        *

        * @return array

        */

        private function construct_num_Page(){

        if($this->totalPageNum < $this->showPageNum){

        $currentArray = array();

        for($i=0; $i < $this->totalPageNum; $i ++){

        $currentArray[$i] = $i + 1;

        }

        }else{

        $currentArray = $this->initArray();

        $curArrayLen = count($currentArray);

        if($this->currentPage <= $this->curIndexPage){

        for($i=0; $i < $curArrayLen; $i ++){

        $currentArray[$i] = $i+1;

        }

        }elseif (($this->currentPage <= $this->totalPageNum) && ($this->currentPage > ($this->totalPageNum - $this->showPageNum + 1))){

        //構(gòu)造最后的分頁欄,35 36 37 38 39 40 [下一頁] [最后一頁] 總頁數(shù)為40

        for($i=0; $i < $curArrayLen; $i ++){

        $currentArray[$i] = $this->totalPageNum - $this->showPageNum + 1 + $i;

        }

        }else{

        for($i=0; $i < $curArrayLen; $i ++){

        $currentArray[$i] = $this->currentPage - $this->curIndexPage + 1 +$i;

        }

        }

        }

        return $currentArray;

        }//End of construct_num_Page() Method

        }//End of Pages Class

        ?>


      猜你喜歡:

      1.php分頁類的使用方法

      2.php調(diào)用類中的方法

      3.php調(diào)用父類方法

      4.php中的“->”用法

      374291