/** * Created by PhpStorm. * User: caipeichao * Date: 14-3-10 * Time: PM7:40 */ function getPagination($totalCount, $countPerPage = 10, $rollPage = 0) { //计算总页数 $pageCount = ceil($totalCount / $countPerPage); //如果只有1页,就没必要翻页了 if ($pageCount <= 1) { return ''; } $Page = new \Think\Page($totalCount, $countPerPage); // 实例化分页类 传入总记录数和每页显示的记录数 if ($rollPage) { $Page->setRollPage($rollPage); } return $Page->show(); }
/** * 便捷分页查询 * @access public * @param mixed $options 表达式参数 * @param mixed $pageopt 分页参数 * @return mixed */ public function findPage($pageopt = 10, $count = false, $options = array(), $rollPage = 0) { // 分析表达式 $options = $this->_parseOptions($options); // 如果没有传入总数,则自动根据条件进行统计 if ($count === false) { // 查询总数 $count_options = $options; $count_options['limit'] = 1; $count_options['field'] = 'count(1) as count'; // 去掉统计时的排序提高效率 unset($count_options['order']); $result = $this->db->select($count_options); $count = $result[0]['count']; unset($result); unset($count_options); } // 如果查询总数大于0 if ($count > 0) { // 载入分页类 //import('ORG.Util.Page'); // 解析分页参数 if (is_numeric($pageopt)) { $pagesize = intval($pageopt); } else { $pagesize = 10; } $p = new \Think\Page($count, $pageopt); // 实例化分页类 传入总记录数和每页显示的记录数 if ($rollPage) { //zzl添加 2015-6-11 10:44 $p->setRollPage($rollPage); } // 查询数据 $options['limit'] = $p->firstRow . ',' . $p->listRows; // 输出控制 $output['count'] = $count; $output['html'] = $p->show(); $output['totalRows'] = $p->totalRows; $output['nowPage'] = $p->nowPage; $output['totalPages'] = $p->totalPages; $resultSet = $this->where($options['where'])->order($options['order'])->page($p->nowPage, $pageopt)->select(); if ($resultSet) { $this->dataList = $resultSet; } else { $resultSet = ''; } $output['data'] = $resultSet; unset($resultSet); unset($p); unset($count); } else { $output['count'] = 0; $output['totalPages'] = 0; $output['totalRows'] = 0; $output['nowPage'] = 1; $output['html'] = ''; $output['data'] = ''; } if ($output['totalPages'] < 2) { $output['html'] = ''; } // 输出数据 return $output; }