zoukankan      html  css  js  c++  java
  • 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组件可以“传递查询条件”。

  • 相关阅读:
    第十二章类的无参方法
    第十三章人机猜拳
    第十一章类和对象
    面向对象七大原则。
    深入类的方法。
    使用集合组织相关数据。
    .NET框架
    C#数据类型
    错误。
    实现Windows的数据绑定
  • 原文地址:https://www.cnblogs.com/birdskyws/p/3925043.html
Copyright © 2011-2022 走看看