Maison  >  Article  >  développement back-end  >  PHP分页技术

PHP分页技术

WBOY
WBOYoriginal
2016-06-23 14:30:17768parcourir

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 ?>

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 ?>

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 ?>

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 ?>

 

 

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:php面试题2Article suivant:php面试题1