Example #1
0
/**
 * 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();
}
Example #2
0
 /**
  * 便捷分页查询
  * @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;
 }