【问题标题】:Zend Paginator with query from stringZend Paginator 从字符串查询
【发布时间】:2012-12-20 14:09:28
【问题描述】:

我对我的数据库进行了复杂的查询,我通过原始 SQL 查询运行。不使用zend orm。我想为我的查询添加 Zend Paginator。

从 Zend 文档中,我发现,我需要将所有记录提供给 Zend Paginator 适配器,他自己制作了 COUNT()LIMIT

我有这样的情况:

$sql = 'complicated query'; //LIMIT added "by hand", I'd like to make it automatically via zend_paginator
$q = $db->fetchAll($sql, array(/*paramteres here*/));

现在我的问题是:我应该如何使用 Zend Paginator 进行分页?在我的情况下我应该使用哪个适配器?无法手动获取所有行并使用数组适配器(表中大约 50000 条记录)

任何帮助将不胜感激:)

【问题讨论】:

    标签: zend-framework zend-paginator


    【解决方案1】:

    您可以使用 Zend_Paginator_Adapter_Array 但这不是最好的方法。更好的方法是将查询重写为 Zend_Db_Select 并使用 Zend_Paginator_Adapter_DbSelect

    【讨论】:

    • 正如我所写,阵列适配器不是一个选项。结果中的记录太多。
    • 然后使用答案的第二部分
    • 将查询重写到 Zend_Db_Select 是唯一的方法吗?查询真的很复杂,重写到db_select会很费时间。
    • 您可以编写自己的适配器来做 2 件事 - 进行查询 -> 删除所有选定的列并仅使用一个 SELECT COUNT(1) AS count... 然后操作这个数字将为主查询生成限制和偏移量,但我认为它比将查询重写为 Zend_Db_Select 更复杂
    • 想拥有你的蛋糕并把它也吃掉,然后将其转换为 Zend_Db_Select。
    猜你喜欢
    • 2012-06-30
    • 1970-01-01
    • 2013-10-14
    • 2014-09-26
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多