分页实现,网上代码很多,不过以下是我整理优化后的在SAE上的代码实现。
就不再仔细解说了,注释写得很清楚
//分页实现函数,传入sql语句,访问的页号(默认为1),以及页面大小(默认为10);返回包含总个数,每页条数,总页数,当前页数,当前页数数据列表的数组;
function fenye($sql,$page=1,$pageSize=10) {
<span style="white-space:pre"> </span>$res = $this->mysql->getData($sql);//按条件从数据库中读取数据,返回二维数组,如果不是SAE,直接改成php原生的mysql调用,其他代码不变
<span style="white-space:pre"> </span>$count = count($res);//得到符合条件的建议的总个数,count函数的作用是计算出数组的元素个数
<span style="white-space:pre"> </span>$num_of_paginations = ceil($count/$pageSize);//计算出总页数,ceil函数的作用是求得不小于给定实数的最小整数
<span style="white-space:pre"> </span>if($page > $num_of_paginations){
<span style="white-space:pre"> </span>return false; //申请的页号大于总页数,返回FALSE
<span style="white-space:pre"> </span>}else{
<span style="white-space:pre"> </span>$start = ($page-1)*$pageSize;//分页第一条元素的索引,也就是分段开始的地方
<span style="white-space:pre"> </span>$list = array_slice($res,$start,$pageSize);//获取该分页的所有数据。array_splice函数的作用是从数组中取出一段
<span style="white-space:pre"> </span>$arr = array(
<span style="white-space:pre"> </span>"count" => $count, //总个数
<span style="white-space:pre"> </span> "pageSize" => $pageSize, //每页条数
<span style="white-space:pre"> </span>"pageCount" => $num_of_paginations, //总页数
<span style="white-space:pre"> </span>"thisPage" => $page, //当前页数
<span style="white-space:pre"> </span>"list" => $list //当前页面数据列表
<span style="white-space:pre"> </span> );
<span style="white-space:pre"> </span> return $arr;
<span style="white-space:pre"> </span>}
}