php– 如何使用zend paginate而不加载数据库的所有结果

php– 如何使用zend paginate而不加载数据库的所有结果,第1张

概述所以我看到zend paginate工作的方式是你做的:$paginator = Zend_Paginator::factory($results); $paginator->setItemCountPerPage($itemCount); $paginator->setPageRange($pageRange); 其中$results是以数据库

所以我看到Zend paginate工作的方式是你做的:@H_301_2@

@H_301_2@

$paginator = Zend_Paginator::factory($results);$paginator->setItemCountPerPage($itemCount);$paginator->setPageRange($pageRange);@H_419_7@

其中$results是以数据库形式从数据库加载一堆项的结果@H_301_2@

@H_301_2@

"SELECT * FROM table WHERE etc"@H_419_7@

然后Zend paginate将计算结果数并自动生成页面范围…@H_301_2@

但是如果你这样做,那么你将不得不获取数据库的所有结果,我认为这是一种浪费,因为一次只显示一个页面,因此你只需要获取该页面的项目……@H_301_2@

如何使Zend paginate能够计算正确的页面范围和数字而无需获取整个表的所有结果?@H_301_2@最佳答案使用工厂方法,您可以发送Zend_Db_Select或Zend_Db_table_Select的实例.如果你是类扩展Zend_Db_table_Abstract,你可以简单地从它构建一个select查询,然后发送它.如果没有,您可以创建实例并发送它,请参阅文档中的示例:@H_301_2@

@H_301_2@

    $adapter = new Zend_Paginator_Adapter_DbSelect($db->select()->from('posts'));    $adapter->setRowCount(        $db->select()           ->from(                'item_counts',array(                   Zend_Paginator_Adapter_DbSelect::ROW_COUNT_ColUMN => 'post_count'                )             )    );$paginator = new Zend_Paginator($adapter)@H_419_7@

http://framework.zend.com/manual/en/zend.paginator.usage.html#zend.paginator.usage.dbselect 总结

以上是内存溢出为你收集整理的php – 如何使用zend paginate而不加载数据库的所有结果全部内容,希望文章能够帮你解决php – 如何使用zend paginate而不加载数据库的所有结果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1168644.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-01
下一篇2022-06-01

发表评论

登录后才能评论

评论列表(0条)