【问题标题】:How to set zend pagination for large data set?如何为大数据集设置zend分页?
【发布时间】:2013-05-12 12:57:08
【问题描述】:

我想为大量数据集设置分页,比如数万。 如果一次获取所有数据,性能会很慢。所以我需要一个更好的方法:

在我的控制器中,我有给定的代码:

    $result = $result = $this->fetchAll($this->select()
                                            ->where('id='.$id)
                                            ->order('date DESC'))->toArray();
    $paginator = Zend_Paginator::factory($data);
    $pageNumber = $this->_getParam('page');       
    $paginator->setCurrentPageNumber($pageNumber);
    $paginator->setItemCountPerPage(10);
    $this->view->data = $paginator;

此代码将一次获取所有数据库内容。

【问题讨论】:

    标签: php zend-framework pagination


    【解决方案1】:

    试试这个

        $select = $this->select()->where('id='.$id)
                                 ->order('date DESC');
    
        $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbSelect($select));
        $pageNumber = $this->_getParam('page');       
        $paginator->setCurrentPageNumber($pageNumber);
        $paginator->setItemCountPerPage(10);
        $this->view->data = $paginator; 
    

    【讨论】:

      【解决方案2】:

      试试这个:

      $select = new Zend_Paginator_Adapter_DbSelect($sql);
      $select->count($select);
      $paginator = new Zend_Paginator($select);
      

      您可以从这里获得更多详细信息:

      Paginating data collection

      【讨论】:

      • 不起作用,查询构建良好,但是当我使用 foreach 获取数据时,数据未显示。 对不起,我英语不好
      猜你喜欢
      • 2015-02-08
      • 1970-01-01
      • 2019-07-11
      • 2015-09-28
      • 2023-04-04
      • 1970-01-01
      • 2018-08-10
      • 2010-09-19
      相关资源
      最近更新 更多