knowmore

while(NULL!=Life) { study(); }

 

php通用分页类

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

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

   源码如下:

  1<!--
  2   类名:php通用分页类
  3   功能:实现php中常用的页面分页,提供图像文字分页链接、图像分页链接。文字链接时,可自定义链接文字,图像链接时,可自定义图片。并且两种方式都可自定义样式。
  4   作者:KnowMore
  5   邮箱:hkmgjsf@yahoo.com.cn
  6   电话:15976526525
  7   时间:2007.5.3
  8   附注:如发现Bug,麻烦告知一声,以便能及时纠正,谢谢!可自由转载,但请注明作者、出处。
  9-->
 10<?
 11 class page
 12 {
 13    var $all_count,$cur_page,$sql,$conn,$page_size,$all_page,$cur_url;
 14  
 15  function  page($conn)//构造函数
 16          {
 17              $this->conn =$conn;//数据库连接
 18          } 
 19  
 20  function init()//初始化函数
 21    {
 22    $this->get_count();//获取总纪录数
 23    $this->get_curpage();//获取当前页数
 24    $this->get_allpage();//总页数
 25    $this->cur_url=$_SERVER['PHP_SELF'];//当前页面url 
 26     }  
 27     
 28  function open()//获取记录集
 29    {
 30     $this->init();//初始化
 31     if($this->conn)
 32       {
 33      $sql=$this->sql." limit ".$this->page_size * $this->cur_page." ,".$this->page_size;
 34      $rs=mysql_query($sql,$this->conn);
 35      return $rs;
 36     }
 37     else
 38        return false;
 39    }
 40    
 41  function get_count()//获取总纪录数
 42    {
 43     if(isset($_GET['all_count']))
 44    $this->all_count=$_GET['all_count'];
 45     else
 46    { 
 47       $rs=mysql_query($this->sql,$this->conn);
 48       $this->all_count=mysql_num_rows($rs);
 49     }
 50    }
 51     
 52  function get_curpage()//获取当前页数
 53    {
 54   if(isset($_GET['cur_page']))
 55    $this->cur_page=intval($_GET['cur_page'])+0;
 56     else
 57    $this->cur_page=0;
 58     }
 59     
 60  function get_allpage()//获取总页数
 61    {
 62   if($this->all_count % $this->page_size)
 63    $this->all_page=intval($this->all_count / $this->page_size);
 64   else
 65    $this->all_page=intval($this->all_count / $this->page_size)-1;
 66     }
 67     
 68//文字分页链接
 69     
 70    function first_page($name="首页",$str="",$class_name="")//首页。$name为首页名称,$str为自定义传递字符串,$class_name为CSS类选择标签名(注,以下同)
 71       {
 72     if($this->cur_page >0)//当前页大于第一页
 73      printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'>$name</a>",$this->cur_url,0,$this->all_count);
 74     }
 75          
 76   function back_page($name="上一页",$str="",$class_name="")//上一页 
 77       {
 78     if$this->cur_page > 0)//当前页不是第一页
 79      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);
 80     }
 81          
 82    function next_page($name="下一页",$str="",$class_name="")//下一页 
 83       {
 84     if($this->cur_page<$this->all_page)//当前页小于总页数
 85      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);
 86     }
 87     
 88   function last_page($name="尾页",$str="",$class_name="")//尾页 
 89       {
 90     if$this->cur_page < $this->all_page)//当前页不是最后一页
 91      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);
 92     }
 93     
 94//文字分页链接  
 95
 96 
 97
 98//图像分页链接
 99
100    function first_page_img($url="",$str="",$class_name="")//首页。$url为图片地址,$str为自定义传递字符串,$class_name为CSS类选择标签名(注,以下同)
101       {
102     if($this->cur_page >0)//当前页大于第一页
103      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);
104     }
105          
106   function back_page_img($url="",$str="",$class_name="")//上一页 
107       {
108     if$this->cur_page > 0)//当前页不是第一页
109      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);
110     }
111          
112    function next_page_img($url="",$str="",$class_name="")//下一页 
113       {
114     if($this->cur_page<$this->all_page)//当前页小于总页数
115      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);
116     }
117     
118   function last_page_img($url="",$str="",$class_name="")//尾页 
119       {
120     if$this->cur_page < $this->all_page)//当前页不是最后一页
121      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);
122     }
123     
124//图像分页链接  
125 }
126?>
127

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

 

posted on 2007-05-03 21:35  knowmore  阅读(532)  评论(2)    收藏  举报

导航