• 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组件可以“传递查询条件”。

  • 相关阅读:
    微信网页授权
    ci控制器与方法为何不能同名
    sql优化方案
    收藏了一些Notepad++快捷键
    获取IP地址
    php curl获取文件大小
    php图片压缩两个类
    PHP生成PDF完美支持中文,解决TCPDF乱码
    tcpdf函数
    Hibernate 配置
  • 原文地址:https://www.cnblogs.com/birdskyws/p/3925043.html
Copyright © 2020-2023  润新知