php通用分页类

    终于完成php的通用分页类了!呵,,有点高兴!以前说过要写一个这样的类的,无奈工作实在太忙,所以拖了下来。幸好今天是五一长假的最后一天,提前赶了回来,趁着老板不在,拼凑了出来。

   还没有进行全面的测试,可能还存在各种的Bug,如果谁发现了,请告知一下,以便能及时的收正,谢谢!

   源码如下:

<!--
   类名:php通用分页类
   功能:实现php中常用的页面分页,提供图像文字分页链接、图像分页链接。文字链接时,可自定义链接文字,图像链接时,可自定义图片。并且两种方式都可自定义样式。
   作者:KnowMore
   邮箱:hkmgjsf@yahoo
. com . cn
   电话:
15976526525
   时间:
2007.5 . 3
   附注:如发现Bug,麻烦告知一声,以便能及时纠正,谢谢!可自由转载,但请注明作者、出处。
-->
<?
 
class  page
 {
    
var   $all_count , $cur_page , $sql , $conn , $page_size , $all_page , $cur_url ;
  
  
function   page( $conn ) // 构造函数
          {
              
$this -> conn  = $conn ; // 数据库连接
          } 
  
  
function  init() // 初始化函数
    {
    
$this -> get_count(); // 获取总纪录数
     $this -> get_curpage(); // 获取当前页数
     $this -> get_allpage(); // 总页数
     $this -> cur_url = $_SERVER [ ' PHP_SELF ' ]; // 当前页面url 
     }  
     
  
function  open() // 获取记录集
    {
     
$this -> init(); // 初始化
      if ( $this -> conn)
       {
      
$sql = $this -> sql . "  limit  " . $this -> page_size  *   $this -> cur_page . "  , " . $this -> page_size;
      
$rs = mysql_query ( $sql , $this -> conn);
      
return   $rs ;
     }
     
else
        
return   false ;
    }
    
  
function  get_count() // 获取总纪录数
    {
     
if ( isset ( $_GET [ ' all_count ' ]))
    
$this -> all_count = $_GET [ ' all_count ' ];
     
else
    { 
       
$rs = mysql_query ( $this -> sql , $this -> conn);
       
$this -> all_count = mysql_num_rows ( $rs );
     }
    }
     
  
function  get_curpage() // 获取当前页数
    {
   
if ( isset ( $_GET [ ' cur_page ' ]))
    
$this -> cur_page = intval ( $_GET [ ' cur_page ' ]) + 0 ;
     
else
    
$this -> cur_page = 0 ;
     }
     
  
function  get_allpage() // 获取总页数
    {
   
if ( $this -> all_count  %   $this -> page_size)
    
$this -> all_page = intval ( $this -> all_count  /   $this -> page_size);
   
else
    
$this -> all_page = intval ( $this -> all_count  /   $this -> page_size) - 1 ;
     }
     
// 文字分页链接
     
    
function  first_page( $name = " 首页 " , $str = "" , $class_name = "" ) // 首页。$name为首页名称,$str为自定义传递字符串,$class_name为CSS类选择标签名(注,以下同)
       {
     
if ( $this -> cur_page  > 0 ) // 当前页大于第一页
       printf ( " <a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'>$name</a> " , $this -> cur_url , 0 , $this -> all_count);
     }
          
   
function  back_page( $name = " 上一页 " , $str = "" , $class_name = "" ) // 上一页 
       {
     
if $this -> cur_page  >   0 ) // 当前页不是第一页
       printf ( " <a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'>$name</a> " , $this -> cur_url , $this -> cur_page - 1 , $this -> all_count);
     }
          
    
function  next_page( $name = " 下一页 " , $str = "" , $class_name = "" ) // 下一页 
       {
     
if ( $this -> cur_page < $this -> all_page) // 当前页小于总页数
       printf ( " <a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'>$name</a> " , $this -> cur_url , $this -> cur_page + 1 , $this -> all_count);
     }
     
   
function  last_page( $name = " 尾页 " , $str = "" , $class_name = "" ) // 尾页 
       {
     
if $this -> cur_page  <   $this -> all_page) // 当前页不是最后一页
       printf ( " <a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'>$name</a> " , $this -> cur_url , $this -> all_page , $this -> all_count);
     }
     
// 文字分页链接  

 

//图像分页链接


    
function  first_page_img( $url = "" , $str = "" , $class_name = "" ) // 首页。$url为图片地址,$str为自定义传递字符串,$class_name为CSS类选择标签名(注,以下同)
       {
     
if ( $this -> cur_page  > 0 ) // 当前页大于第一页
       printf ( " <a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'><img src='$url'  border='0'/></a> " , $this -> cur_url , 0 , $this -> all_count);
     }
          
   
function  back_page_img( $url = "" , $str = "" , $class_name = "" ) // 上一页 
       {
     
if $this -> cur_page  >   0 ) // 当前页不是第一页
       printf ( " <a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'><img src='$url'  border='0' /></a> " , $this -> cur_url , $this -> cur_page - 1 , $this -> all_count);
     }
          
    
function  next_page_img( $url = "" , $str = "" , $class_name = "" ) // 下一页 
       {
     
if ( $this -> cur_page < $this -> all_page) // 当前页小于总页数
       printf ( " <a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'><img src='$url'  border='0' /></a> " , $this -> cur_url , $this -> cur_page + 1 , $this -> all_count);
     }
     
   
function  last_page_img( $url = "" , $str = "" , $class_name = "" ) // 尾页 
       {
     
if $this -> cur_page  <   $this -> all_page) // 当前页不是最后一页
       printf ( " <a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'><img src='$url'  border='0' /></a> " , $this -> cur_url , $this -> all_page , $this -> all_count);
     }
     
// 图像分页链接  
 }
?>

 测试代码就不多贴出来了,有兴趣的可参照如下文件:http://knowmore.blogbus.com/files/11781973580.php (另存为php文件就行了)

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值