Zend_Paginator多条件查询

上一篇中,作者介绍了zend_paginator,利用range(1,$lenght)初始化Zend_Paginator_Adapter_Array(),用这个zend_paginator构造一个导航条。

本篇介绍条件查询分页:

(1)首先要查询到该条件下的总条数。

(2)然后再获取当前页的数据。

 

$db = $this->getAdapter();
$select = $db->select();
$select->from('draft','count(*)');
//$array查询条件
foreach(@$array as $key=>$value) { if($key=='keyword') { $condition = '%'.$value.'%'; $select->where("content like ?",$condition); } else { $select->where($key."=?",$value); } } $this->total = $db->fetchOne($select); if($this->total==0) { return null; } //不计算分页,首先计算该条件下总数 $paginator= new Zend_Paginator(new Zend_Paginator_Adapter_Array(range(1,$this->total))); $select = $db->select(); //重新设置查询条件 $select->from('draft','*'); foreach(@$array as $key=>$value) { if($key=='keyword') { $condition = '%'.$value.'%'; $select->where("content like ?",$condition); } else { $select->where($key."=?",$value); } } //设置分页 $begin = $pageNum*$perPage; $select->limit($perPage,$begin); $select->order("modifytime desc"); $this->array = $db->fetchAll($select); return $paginator;

在view页面中:

pagination-control.phtml中

<?php echo $this->url(array_merge($params,array('page' => $page))); ?>

这段代码会将post的数据按/key/value的方式组成url,因此使用pagination-control组件可以“传递查询条件”。

转载于:https://www.cnblogs.com/birdskyws/p/3925043.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值