Heim > Backend-Entwicklung > PHP-Tutorial > PHP分页技术

PHP分页技术

WBOY
Freigeben: 2016-06-23 14:30:17
Original
791 Leute haben es durchsucht

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 ?>
Nach dem Login kopieren

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 ?>
Nach dem Login kopieren

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 ?>
Nach dem Login kopieren

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 ?>
Nach dem Login kopieren

 

 

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage