PHP 自制分页类

思路:

通过给页面url传递get参数,来控制每页的sql查询(mysql关键词:limit),实现分页查询

代码:

 

 1 class getpage{
 2     
 3     public $pagenum;
 4     public $pagecontents;
 5     public $sql;
 6     public $url; 
 7     public function __construct($a){
 8         
 9         $this->pagecontents = $a;
10         $this->url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
11     }
12     //获取分页数
13     public function createpage($sql){
14         
15         $this->sql = $sql;
16         $conn = mysql_connect('localhost','root','root');
17         if(!$conn){
18             
19             die(mysql_error());
20         }
21         mysql_select_db('class',$conn)or die(mysql_error());
22         mysql_query("set names 'utf8'");
23         $handle = mysql_query($sql);
24         $row = array();
25         while($r = mysql_fetch_row($handle)){
26             
27             $row[] = $r;
28         }
29         //假如除的结果为小数,则进1来保证分页数量
30         $pagenum = count($row)/$this->pagecontents;
31         $this->pagenum = ceil($pagenum);
32         
33     }
34     //替换page参数
35     private function replacestr(){
36         if(isset($_GET['page'])){
37             return str_replace("?page=".@$_GET['page'],"", $this->url);
38         }else{
39             @$_GET['page'] = 0;
40         }
41     }
42     //页面分页显示
43     public function createstyle(){
44         
45         for($i=0;$i<$this->pagenum;$i++){
46             
47             echo "<button><a href='".$this->replacestr($this->url)."?page=".$i*$this->pagecontents."'>".(1+$i)."</a></button>";
48         }
49     }
50     public function getdata(){
51         
52         $where = " limit ".(@$_GET['page']).",".$this->pagecontents;
53         $this->sql .= $where; 
54         $handle = mysql_query($this->sql);
55         $arr = array();
56         while($r = mysql_fetch_assoc($handle)){
57             $arr[] = $r;
58         }
59         return $arr;
60     }
61     
62 }

 

posted @ 2017-06-16 15:12  程昱仲德  阅读(172)  评论(0编辑  收藏  举报