Home > Backend Development > PHP Tutorial > PHP分页技术

PHP分页技术

WBOY
Release: 2016-06-23 14:30:17
Original
794 people have browsed it

1.分页对象

View Code

 1 <?php 2     //保存分页信息的类 3     class PaggingMode{ 4         //分页规格 5         public $pageSize=6; 6         //结果集 7         public $res_array; 8         //总记录 9         public $rowCount;10         //当前页11         public $pageNow;12         //总页数13         public $pageCount;14         //分页导航15         public $navigate;16     }17 ?>
Copy after login

2.分页查询

View Code

 1 <?php 2     require_once 'PaggingModel.php'; 3     //MySql助手类(含分页) 4     class SqlHelper{ 5      6         //属性 7         public $conn; 8         public $dbname="database"; 9         public $username="root";10         public $password="root";11         public $host="localhost";12 13         //构造函数14         public function __construct(){15             $this->conn=mysql_connect($this->host,$this->username,$this->password,$this->dbname);16             if(!$this->conn){17                 die(mysql_error());18             }19             //选择数据库20             mysql_select_db($this->dbname,$this->conn);21             //设置编码22             mysql_query("set names utf8");23         }24         25         //执行dql语句26         public function execute_dql($sql){27             $res=mysql_query($sql,$this->conn);28             return $res;29         }30         31         //执行dml语句32         public function execute_dml($sql){33             $b=mysql_query($sql,$this->conn);34             if(!$b){35                 //执行失败36                 return 0;37             }38             else{39                 if(mysql_affected_rows($this->conn)>0){40                     //执行成功41                     return 1;42                 }43                 else{44                     //没有受影响的行45                     return 2;46                 }47             }48         }49         50         //分页查询51         public function execute_dql_pagging($sql1,$sql2,$paggingModel){52             //获取分页所需要的数据集53             $res=mysql_query($sql1,$this->conn) or die(mysql_errno());54             $arr=array();55             //将结果集存储起来56             while($row=mysql_fetch_assoc($res)){57                 $arr[]=$row;58             }59             //释放结果集60             mysql_free_result($res);61             62             //获取记录总数63             $res=mysql_query($sql2,$this->conn) or die(mysql_errno());64             if($row=mysql_fetch_row($res)){65                 $paggingModel->pageCount=ceil($row[0]/$paggingModel->pageSize);66                 $paggingModel->rowCount=$row[0];67             }68             69             mysql_free_result($res);70             71             //存储结果集72             $paggingModel->res_array=$arr;73         }74         75         //关闭连接76         public function close_connect(){77             if(!empty($this->conn)){78                 mysql_close($this->conn);79             }80         }81     }82 ?>
Copy after login

3.分页逻辑

View Code

 1 <?php 2      3     require_once 'SqlHelper.php'; 4     require_once 'PaggingModel.php'; 5     //分页逻辑 6     class PaggingBuiness{ 7         function getPagging($paggingModel){ 8             $sqlHelper=new SqlHelper(); 9             $sql1="select * from table limit ".($paggingModel->pageNow-1)*$paggingModel->pageSize.",".$paggingModel->pageSize;10             $sql2="select count(*) from table";11             $sqlHelper->execute_dql_pagging($sql1, $sql2, $paggingModel);12             13             $sqlHelper->close_connect();14         }15     }16 ?>
Copy after login

4.测试分页

View Code

 1 <?php 2     //测试分页 3     require_once 'PaggingBuiness.php'; 4     require_once 'PaggingModel.php'; 5      6     $paggingModel=new PaggingMode(); 7     $paggingModel->pageNow=1; 8     $paggingModel->pageSize=6; 9     10     //改变当前页11     if(!empty($_GET['pageNow'])){12         $paggingModel->pageNow=$_GET['pageNow'];13     }14     15     $paggingBuiness=new PaggingBuiness();16     $paggingBuiness->getPagging($paggingModel);17     18     //打印表格结构以及表头19     echo "html代码";20     21     for($i=0;$i<count($paggingModel->res_array);$i++){22         $row=$paggingModel->res_array[$i];23         echo "输出内容";24     }25     26     //显示上一页和下一页27     if($paggingModel->pageNow>1){28         $prePage=$paggingModel->pageNow-1;29         echo "a href='xx.php?pageNow=$prePage'>上一页</a> ";30     }31     if($paggingModel->pageNow<$paggingModel->pageCount){32         $nextPage=$paggingModel->pageNow+1;33         echo "<a href='xx.php?pageNow=$nextPage'>下一页</a> ";34     }35 ?>
Copy after login

 

 

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template