我想为大量数据集设置分数说成千上万。 如果您一次获取所有数据,性能将会很慢。所以我需要一个更好的方法:
在我的控制器中,我有以下代码:
$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;
此代码将立即获取所有数据库内容。
答案 0 :(得分: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;
答案 1 :(得分:0)
试试这个:
$select = new Zend_Paginator_Adapter_DbSelect($sql);
$select->count($select);
$paginator = new Zend_Paginator($select);
您可以从此处获取更多详细信息: