提问者:小点点

Zend Paginator:使用限制和偏移从数据库加载每个页面


我正在使用以下代码进行分页

我将数据库结果获取限制为10,

        $result = $model->search(); // sql Limit 10
        $paginator = Zend_Paginator::factory($result['listings']);
        $paginator->setItemCountPerPage(10);
        $paginator->setCurrentPageNumber($page);
        $this->view->paginator = $paginator;

我在数据库中有大约10,000条记录,我正在尝试为每个数据库请求获取10个结果并显示。

但是这里对于分页,我们需要获取所有结果,并且需要传递给Zend Paginator,这会导致性能问题。那么我如何使用SQL偏移量和限制(如1,10…11,10…21,10)每页只获取10个结果

在单击第二页时,我需要从数据库中获取偏移量和限制为11,10等的结果

我需要从数据库中动态获取每个页面结果。怎么可能??


共1个答案

匿名用户

是的,我也发现了这个问题…我上周在想同一个案例。你能试试吗

我的分页URL:超文本传输协议://zf2.localhost/controller/?page=2

$SetItemCount=10;
$CurrentPage=$this->params()->fromQuery('page');
$NextPage=$current_page+1;
$result = $model->search($NextPage,$SetItemCount);
$paginator = Zend_Paginator::factory($result['listings']);
$paginator->setItemCountPerPage($SetItemCount);
$paginator->setCurrentPageNumber($page);
$this->view->paginator = $paginator;

我没有亲自尝试过这个。我在想这样继续。您需要buffer结果集并使用Iterator