我有以下查询:
$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);
之前我可以确定如果我有任何数据,我的意思是数据,如果查询有一些结果,那么如果查询有一些结果我向用户显示,如果不,我需要向他们展示一条消息(没有结果!)
但是在这一刻我不知道怎么能确定这一点,因为count($paginator)
由于$paginator->getAdapter()->setRowCount(200);
不再起作用而且我正在使用它,因为Zend_Paginator大约需要7秒计算页码。
那我怎么能找到如果我的查询有任何结果?
答案 0 :(得分:0)
为什么你将setRowCount()设为幻数?如果Z_P用于发现行总数的任何方法花费很长时间,您可能希望以这种方式覆盖它,但是您想要计算实际值,不是吗?
在大多数情况下,Z_P应该自动获得正确的数字(内部,通过子查询)。如果该子查询花费的时间太长,您可以尝试构建自己的Zend_Db_Select来执行计数,并将其传递给setRowCount()。