php 分页类2

WBOY
WBOYasal
2016-06-23 14:30:07850semak imbas

php  include ( " mslcon.php " );  ?>

php

class  SubPages{


private   $each_disNums ; // 每页显示的条目数

private   $nums ; // 总条目数

private   $current_page ; // 当前被选中的页

private   $sub_pages ; // 每次显示的页数

private   $pageNums ; // 总页数

private   $page_array   =   array (); // 用来构造分页的数组

private   $subPage_link ; // 每个分页的链接

private   $subPage_type ; // 显示分页的类型

/*

__construct是SubPages的构造函数,用来在创建类的时候自动运行.

@$each_disNums 每页显示的条目数

@nums    总条目数

@current_num    当前被选中的页

@sub_pages      每次显示的页数

@subPage_link   每个分页的链接

@subPage_type   显示分页的类型


当@subPage_type=1的时候为普通分页模式

        example: 共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页]

        当@subPage_type=2的时候为经典分页样式

        example: 当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页]

*/

function  __construct( $each_disNums , $nums , $current_page , $sub_pages , $subPage_link , $subPage_type ){

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

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

    if ( ! $current_page ){

     $this -> current_page = 1 ;

   } else {

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

   }

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

    $this -> pageNums = ceil ( $nums / $each_disNums );

    $this -> subPage_link = $subPage_link ;

    $this -> show_SubPages( $subPage_type );

//  echo $this->pageNums."--".$this->sub_pages;

}



/*

   __destruct析构函数,当类不在使用的时候调用,该函数用来释放资源。

*/

function  __destruct(){

    unset ( $each_disNums );

    unset ( $nums );

    unset ( $current_page );

    unset ( $sub_pages );

    unset ( $pageNums );

    unset ( $page_array );

    unset ( $subPage_link );

    unset ( $subPage_type );

}


/*

   show_SubPages函数用在构造函数里面。而且用来判断显示什么样子的分页 

*/

function  show_SubPages( $subPage_type ){

    if ( $subPage_type   ==   1 ){

     $this -> subPageCss1();

   } elseif  ( $subPage_type   ==   2 ){

     $this -> subPageCss2();

   }

}



/*

   用来给建立分页的数组初始化的函数。

*/

function  initArray(){

    for ( $i = 0 ; $i sub_pages; $i ++ ){

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

   }

    return   $this -> page_array;

}



/*

   construct_num_Page该函数使用来构造显示的条目

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

*/

function  construct_num_Page(){

    if ( $this -> pageNums  sub_pages){

     $current_array = array ();

     for ( $i = 0 ; $i pageNums; $i ++ ){

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

    }

   } else {

     $current_array = $this -> initArray();

     if ( $this -> current_page 
      for ( $i = 0 ; $i
       $current_array [ $i ] = $i + 1 ;

     }

    } elseif  ( $this -> current_page  pageNums  &&   $this -> current_page  >   $this -> pageNums  -   $this -> sub_pages  +   1  ){

      for ( $i = 0 ; $i
       $current_array [ $i ] = ( $this -> pageNums) - ( $this -> sub_pages) + 1 + $i ;

     }

    } else {

      for ( $i = 0 ; $i
       $current_array [ $i ] = $this -> current_page - 3 + $i ;  // -2左边第2个突出

     }

    }

   }

  

    return   $current_array ;

}


/*

构造普通模式的分页

共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页]

*/

function  subPageCss1(){

    $subPageCss1Str = "" ;

    $subPageCss1Str .= " 共 " . $this -> nums . " 条记录, " ;

    $subPageCss1Str .= " 每页显示 " . $this -> each_disNums . " 条, " ;

    $subPageCss1Str .= " 当前第 " . $this -> current_page . " / " . $this -> pageNums . " 页  " ;

    if ( $this -> current_page  >   1 ){

     $firstPageUrl = $this -> subPage_link . " 1 " ;

     $prewPageUrl = $this -> subPage_link . ( $this -> current_page - 1 );

     $subPageCss1Str .= " [首页]  " ;

     $subPageCss1Str .= " [上一页]  " ;

   } else  {

     $subPageCss1Str .= " [首页]  " ;

     $subPageCss1Str .= " [上一页]  " ;

   }

  

    if ( $this -> current_page  pageNums){

     $lastPageUrl = $this -> subPage_link . $this -> pageNums;

     $nextPageUrl = $this -> subPage_link . ( $this -> current_page + 1 );

     $subPageCss1Str .= "  [下一页]  " ;

     $subPageCss1Str .= " [尾页]  " ;

   } else  {

     $subPageCss1Str .= " [下一页]  " ;

     $subPageCss1Str .= " [尾页]  " ;

   }

  

    echo   $subPageCss1Str ;

  

}



/*

构造经典模式的分页

当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页]

*/

function  subPageCss2(){

    $subPageCss2Str = "" ;

    $subPageCss2Str .= " 当前第 " . $this -> current_page . " / " . $this -> pageNums . " 页  " ;

  

  

    if ( $this -> current_page  >   1 ){

     $firstPageUrl = $this -> subPage_link . " 1 " ;

     $prewPageUrl = $this -> subPage_link . ( $this -> current_page - 1 );

     $subPageCss2Str .= " [首页]  " ;

     $subPageCss2Str .= " [上一页]  " ;

   } else  {

     $subPageCss2Str .= " [首页]  " ;

     $subPageCss2Str .= " [上一页]  " ;

   }

  

    $a = $this -> construct_num_Page();

    for ( $i = 0 ; $i
     $s = $a [ $i ];

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

      $subPageCss2Str .= " [ " . $s . " ] " ;

    } else {

      $url = $this -> subPage_link . $s ;

      $subPageCss2Str .= " [ " . $s . " ] " ;

    }

   }

  

    if ( $this -> current_page  pageNums){

     $lastPageUrl = $this -> subPage_link . $this -> pageNums;

     $nextPageUrl = $this -> subPage_link . ( $this -> current_page + 1 );

     $subPageCss2Str .= "  [下一页]  " ;

     $subPageCss2Str .= " [尾页]  " ;

   } else  {

     $subPageCss2Str .= " [下一页]  " ;

     $subPageCss2Str .= " [尾页]  " ;

   }

    echo   $subPageCss2Str ;

}

}

?>

代码 :

php

// require_once("SubPages.php");

//每页显示的条数

$page_size = 20 ;

// 总条目数

$nums = 1024 ;

// 每次显示的页数

$sub_pages = 10 ;

// 得到当前是第几页

$pageCurrent = $_GET [ " p " ];

// if(!$pageCurrent) $pageCurrent=1;


$subPages = new  SubPages( $page_size , $nums , $pageCurrent , $sub_pages , " a.php?p= " , 2 );

?>
php


if ( empty ( $_GET [ " p " ]))
{
$pageCurrent2 = 0 ; // limit 从0开始
$page_size2 = 3 ; // 到2结束,一共3条数据每页
}
else
{ $pageCurrent2 = $_GET [ " p " ] * 3 - 3 ; // 计算每页开始第一条的参数
$page_size2 = $pageCurren2 + 3 ; // 每页显示3条数据
}
$sql = " select * from art " ;
$sql = sprintf ( " %s limit %d, %d " , $sql , $pageCurrent2 , $page_size2 );
$ni = new   Mysql ( " 127.0.0.1 " , " root " , " 123 " , " school " );

echo   "
" ;
$sql2 = " select * from art " ;
$nums = $ni -> Number ( $sql2 );
// echo "QQ".$nums;




$result = $ni -> Query( $sql );
while ( $rows = $ni -> fetch_array( $result ))
{
echo   "
" ;
echo   $rows [ ' title ' ];
echo   "
" ;


}
$page_size = 3 ;
$sub_pages = 10 ;
$pageCurrent = $_GET [ " p " ];
$subPages = new  SubPages( $page_size , $nums , $pageCurrent , $sub_pages , " a.php?p= " , 2 );


?>

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:{php 5异常(Exception)}Artikel seterusnya:让PHP 多语言 【转】