如何使用zend paginate与普通的sql查询而不是zend_db_select

时间:2010-11-20 03:12:02

标签: php mysql zend-framework zend-paginator

所以基本上你可以通过以下方式使用zend paginate:

$sql = new Zend_Db_Select($db);
$sql->from(table);
$sql->where(zend_db_select_sucks = 1);

$paginator = Zend_Paginator::factory($sql);

有没有办法使用paginator,这样您就可以自己设置$sql而不使用zend_db_select

所以只是

$sql = "SELECT * FROM table WHERE zend_db_select_sucks = 1"

$paginator = Zend_Paginator::factory($sql);

2 个答案:

答案 0 :(得分:7)

Paginator工厂的重点是你也可以将它传给一个行集,它也会分页吗?我刚试了这个,它似乎适合我(即使我通常使用Zend_Db_Select)

$db = Zend_Db_Table::getDefaultAdapter();
$rowset = $db->query('SELECT * FROM user')->fetchAll();
$paginator = Zend_Paginator::factory($rowset);

答案 1 :(得分:0)

你必须将你的SQL查询字符串包装在query()之内,然后再传递给其他任何东西,否则ZF不知道你在说什么

$db = new Application_Model_DbTable_Example(); // if you've created a model for your db
$select = $db->query("SELECT * FROM table WHERE value='varstring'")->fetchAll;

然后您可以将其发送到paginator