首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend_Table_Db、Zend_Paginator和Zend_Paginator_Adapter_DbSelect

Zend_Table_Db、Zend_Paginator和Zend_Paginator_Adapter_DbSelect
EN

Stack Overflow用户
提问于 2010-06-14 02:34:35
回答 1查看 1.3K关注 0票数 0

我有以下疑问:

代码语言:javascript
复制
$this->select()
 ->where("`name` LIKE ?",'%'.mysql_escape_string($name).'%')

现在我有了Zend_Paginator代码:

代码语言:javascript
复制
        $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;

正如您所看到的,在没有$paginator->getAdapter()->setRowCount(200);之前,我正在使用$this->view->data = $paginator将数据传递给视图。我可以确定是否有数据,我对数据的含义,查询是否有一些结果,因此如果查询有一些结果,我会向用户显示结果,如果没有,我需要向他们显示一条消息(No results!)

但此时此刻,我不知道如何确定这一点,因为count($paginator)因为$paginator->getAdapter()->setRowCount(200);而不再工作,而我之所以使用它,是因为Zend_Paginator计算页码大约需要7秒。

那么,我如何才能找到我的查询是否有结果呢?

EN

回答 1

Stack Overflow用户

发布于 2010-06-14 05:10:43

为什么你要setRowCount()到一个神奇的数字呢?

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3033417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档