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
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 );
?>