php 分页类 非常好用

来源:互联网 发布:长沙软件开发公司 编辑:程序博客网 时间:2024/05/01 23:33
<?php


/*
 * 分页类
 */
class page_link{
    
    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<$this->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 < $this->sub_pages){   
        $current_array=array();   
        for($i=0;$i<$this->pageNums;$i++){    
        $current_array[$i]=$i+1;   
        }   
        }else{   
        $current_array=$this->initArray();   
        if($this->current_page <= 3){   
        for($i=0;$i<count($current_array);$i++){   
        $current_array[$i]=$i+1;   
        }   
        }elseif ($this->current_page <= $this->pageNums && $this->current_page > $this->pageNums - $this->sub_pages + 1 ){   
        for($i=0;$i<count($current_array);$i++){   
        $current_array[$i]=($this->pageNums)-($this->sub_pages)+1+$i;   
        }   
        }else{   
        for($i=0;$i<count($current_array);$i++){   
        $current_array[$i]=$this->current_page-2+$i;   
        }   
        }   
        }   


        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.="[<a href='$firstPageUrl'>首页</a>] ";   
        $subPageCss1Str.="[<a href='$prewPageUrl'>上一页</a>] ";   
        }else {   
        $subPageCss1Str.="[首页] ";   
        $subPageCss1Str.="[上一页] ";   
        }   


        if($this->current_page < $this->pageNums){   
        $lastPageUrl=$this->subPage_link.$this->pageNums;   
        $nextPageUrl=$this->subPage_link.($this->current_page+1);   
        $subPageCss1Str.=" [<a href='$nextPageUrl'>下一页</a>] ";   
        $subPageCss1Str.="[<a href='$lastPageUrl'>尾页</a>] ";   
        }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.="[<a href='$firstPageUrl'>首页</a>] ";   
        $subPageCss2Str.="[<a href='$prewPageUrl'>上一页</a>] ";   
        }else {   
        $subPageCss2Str.="[首页] ";   
        $subPageCss2Str.="[上一页] ";   
        }   


    $a=$this->construct_num_Page();   
        for($i=0;$i<count($a);$i++){   
        $s=$a[$i];   
        if($s == $this->current_page ){   
        $subPageCss2Str.="[<span style='color:red;font-weight:bold;'>".$s."</span>]";   
        }else{   
        $url=$this->subPage_link.$s;   
        $subPageCss2Str.="[<a href='$url'>".$s."</a>]";   
        }   
        }   


        if($this->current_page < $this->pageNums){   
        $lastPageUrl=$this->subPage_link.$this->pageNums;   
        $nextPageUrl=$this->subPage_link.($this->current_page+1);   
        $subPageCss2Str.=" [<a href='$nextPageUrl'>下一页</a>] ";   
        $subPageCss2Str.="[<a href='$lastPageUrl'>尾页</a>] ";   
        }else {   
        $subPageCss2Str.="[下一页] ";   
        $subPageCss2Str.="[尾页] ";   
        }   
        echo $subPageCss2Str;   
    }   

}   


========================

web 页

<?php  
include_once "../inc/db.inc.php"; 
include_once "../inc/page_link.php"; 
   $sqlstr="select * from recommended_sys_recommended order by id desc";
   
   $result=mysql_query($sqlstr);
   $nums=mysql_num_rows($result);//总条目数   
   $page_size=20;//每页显示的条数
   $sub_pages=6; //每次显示的页数   
   $pageCurrent=$_GET["p"];//得到当前是第几页     
   if($pageCurrent==""){
       $pageCurrent=1;
   }

   $startCount=($pageCurrent-1)*$page_size; //分页开始,根据此方法计算出开始的记录
  
   $query=mysql_query("select * from recommended_sys_recommended order by id desc limit $startCount,$page_size");
   //$query= mysql_query($sqlstr,$con);   
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>推荐产品需求单查看</title>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<link href="css/CommonStyle.css" rel="stylesheet" type="text/css" />
<link href="css/indexStyle.css" rel="stylesheet" type="text/css" />
</head>


<body>
    <div>
        <div style=" text-align:center;">
            <h3>推荐产品需求单查看</h3>
        </div>
    <table border="1" style="margin:0px auto">
            <tr>
                <th>姓名</th>
                <th>部门</th>
                <th>联系方式</th>
                <th>需求名称</th>
                <th>具体描述</th>
                <th>衡量指标</th>
                <th>测试方式</th>
                <th>数据同步式</th>
                <th>当前结果</th>
                <th>期望结果</th>
                <th>期望完成时间</th>
            </tr>
            <?php 
                  while($list=mysql_fetch_array($query,MYSQL_ASSOC)){
            ?>
          <tr>
                <td><?php echo $list['name'];?></td>
                <td><?php echo $list['department'];?></td>
                <td><?php echo $list['phone'];?></td>
                <td><?php echo $list['demandname'];?></td>
                <td><?php echo strlen($list['describes'])>10 ? mb_substr($list['describes'],0,15,'utf-8')."..." : $list['describes']?></td>
                <td><?php echo $list['indicators'];?></td>
                <td><?php echo $list['test'];?></td>
                <td><?php echo $list['synchronously'];?></td>
                <td><?php echo $list['thecurrent'];?></td>
                <td><?php echo $list['expect'];?></td>
                <td><?php echo date("Y-m-d",$list['expecttime']);?></td>
            </tr>
           <?php }?>
       </table>
        <div style=" text-align:center;"> <br/>
       <?php
          $subPages=new page_link($page_size,$nums,$pageCurrent,$sub_pages,"tjqshow.php?p=",2);  
       ?>
       </div>
</div>
</body>
</html>

0 0
原创粉丝点击