前言:由于部分查询数据库代码是经过修饰的,所以看起来有点不对劲,但是不影响思路
1.先写一个生成分页链接的类
<?php /** * Created by PhpStorm. * User: lxj * Date: 2017/7/25 * Time: 14:42 */ class Page{ protected $total;//总的结果数 protected $page_size;//每页显示的记录数 protected $page_now;//当前是第几页 protected $url;//跳转链接时的URL public function __construct($total, $page_size, $page_now, $url){ $this->total = $total; $this->page_size = $page_size; $this->page_now = $page_now; $this->url = $url; } public function createPage(){ $url = $this->url."page="; //首页 $html = <<<PAGEHTML <ul class="pageBar"> <li> <a href="$this->url">首页</a> </li> PAGEHTML; //分页列表,循环生成 $page_count = ceil($this->total / $this->page_size); for($i = $this->page_now - 5;$i < $this->page_now + 5; $i++){ if($i <= 1 || $i >= $page_count){ continue; } $html .= <<<PAGEHTML <li> <a href="$url$i">$i</a> </li> PAGEHTML; } //尾页 $html .= <<<PAGEHTML <li> <a href="$url$page_count">尾页</a> </li> PAGEHTML; $html .= " 当前为第".$this->page_now."页,共".$page_count."页,数据共".$this->total."条"; //返回分页链接 return $html; } }
2.美化分页条的样式
.pageBar{ margin:15px 0 0 25px; } .pageBar li{ display: inline-block; width:35px; text-align: center; border:1px solid silver; background: whitesmoke; } .pageBar a:link{ color:steelblue; display: inline-block; width:35px; height:20px; text-decoration: none; } .pageBar a:hover{ color:red; display: inline-block; width:35px; height:20px; text-decoration: none; } .pageBar a:visited{ color:burlywood; display: inline-block; width:35px; height:20px; text-decoration: none; }
3.调用分页类并传递参数
//生成分页链接start if($_GET['companyName']){ $query_para['companyName'] = $_GET['companyName']; } if($_GET['addr_province']){ $query_para['addr_province'] = $_GET['addr_province']; } if($_GET['area']){ $query_para['area'] = $_GET['area']; } if($_GET['beginDT']){ $query_para['beginDT'] = $_GET['beginDT']; } if($_GET['endDT']){ $query_para['endDT'] = $_GET['endDT']; }if(count($query_para)){ foreach($query_para as $key=>$value){
//如果是页面参数则不加入传递的链接链接中 if($key == 'page'){ continue; } $query_string .= $key.'='.$value.'&'; } } $nowUrl = "agtProductConsumeList.php?".$query_string; $pageObj = new Page($this->count,$this->one_page_num,$this->page_now,$nowUrl); $page_bar = $pageObj->createPage(); //生成分页链接end
4.根据分页传递的页数搜索
public $one_page_num = 5;//每页显示记录数 public $count;//总的记录数 public $page_now;//当前页数 protected function getInfo(){
$ws = " where user_id > 10000";
//搜索结果总数 $rowCount = $this->mysqlObj->sr("select count(*) as num from user $ws"); $this->count = $rowCount['num']; $first_row = ($this->page_now - 1) * $this->one_page_num; $last_row = $this->one_page_num; $ws .= " LIMIT ".$first_row.",".$last_row;
$result = $this->mysqlObj->sr("select count(*) as num from user $ws"); }