Zend_Paginator 分页时如何分开查询以避开数据量大的表

$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$select = $db->select()
             ->from(array('c' => 'controller'), array('id', 'name', 'desc'))
             ->join(array('m' => 'module'), 'c.module_id = m.id', array('module_name' => 'name'))
             ->join(array('v' => 'visit_log'), 'v.id = (SELECT v2.id FROM visit_log v2 WHERE v2.controller_id = c.id ORDER BY visit_time DESC LIMIT 1)', array('visit_time'));
$countSelect = $db->select()
                  ->from('controller', array(Zend_Paginator_Adapter_DbSelect::ROW_COUNT_COLUMN => 'COUNT(*)'));

$adapter = new Zend_Paginator_Adapter_DbSelect($select);
$adapter->setRowCount($countSelect);

Zend_Paginator::setDefaultScrollingStyle('Sliding');
Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination-control-default.phtml');

$paginator = new Zend_Paginator($adapter);
$paginator->setItemCountPerPage(30)
          ->setPageRange(10)
          ->setCurrentPageNumber($this->getQuery('page'));
$this->view->paginator = $paginator;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值