![](/img/trans.png)
[英]Zend_Paginator Without DbSelect/DbTableSelect adapter
[英]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.