繁体   English   中英

Zend_Table_Db和Zend_Paginator和Zend_Paginator_Adapter_DbSelect

[英]Zend_Table_Db and Zend_Paginator and Zend_Paginator_Adapter_DbSelect

我有以下查询:

$this->select()
 ->where("`name` LIKE ?",'%'.mysql_escape_string($name).'%')

现在我有了Zend_Paginator代码:

        $paginator = new Zend_Paginator(
                // $d is an instance of Zend_Db_Select
                new Zend_Paginator_Adapter_DbSelect($d)
        );      

        $paginator->getAdapter()->setRowCount(200);

        $paginator->setItemCountPerPage(15)
                ->setPageRange(10)
                ->setCurrentPageNumber($pag);

        $this->view->data = $paginator;

如您所见,我使用$this->view->data = $paginator将数据传递到视图之前,我没有$paginator->getAdapter()->setRowCount(200); 我可以确定是否有任何数据,如果查询有一些结果,那么我对数据的意思是什么,所以如果查询有一些结果,我会向用户显示,如果没有,我需要向他们显示一条消息(否结果!)

但是在这一刻,我不知道该如何确定,因为由于$paginator->getAdapter()->setRowCount(200);count($paginator)不再起作用$paginator->getAdapter()->setRowCount(200); 我之所以使用它,是因为Zend_Paginator花了大约7秒钟才能计算页码。

那么,如何查询查询结果呢?

为什么将setRowCount()设置为幻数? 如果Z_P用来发现行总数的方法花费了很长时间,则您可能希望以这种方式覆盖它,但是您想要计算实际值,不是吗?

在大多数情况下,Z_P应该自动获取正确的数字(内部,通过子查询)。 如果该子查询花费的时间太长,则可以尝试构建自己的Zend_Db_Select来执行计数,并将其传递给setRowCount()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM