欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php 分页类2

程序员文章站 2022-05-19 08:20:06
...
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 );


?>
相关标签: php 分页类2