• Thinkphp列表搜索排序-----查


    一、控制器

    // 列表
        public function lst()
        {
            $model = D('Goods');
            // 获取带翻页的数据
            $data = $model->search();
            $this->assign(array(
                'data' => $data['data'],
                'page' => $data['page'],
            ));
    
            $this->display();
        }

    二、模型中数据的查询

    public function search()
        {
            /************ 搜索 ****************/
            $where = array();
            // 商品名称的搜索
            $goodsName = I('get.goods_name');
            if($goodsName)
                $where['goods_name'] = array('like', "%$goodsName%");
            // 价格的搜索
            $startPrice = I('get.start_price');
            $endPrice = I('get.end_price');
            if($startPrice && $endPrice)
                $where['price'] = array('between', array($startPrice, $endPrice));
            elseif ($startPrice)
                $where['price'] = array('egt', $startPrice);
            elseif ($endPrice)
                $where['price'] = array('elt', $endPrice);
            // 上架的搜索
            $isOnSale = I('get.is_on_sale', -1);
            if($isOnSale != -1)
                $where['is_on_sale'] = array('eq', $isOnSale); 
            // 是否删除的搜索
            $isDelete = I('get.is_delete', -1);
            if($isDelete != -1)
                $where['is_delete'] = array('eq', $isDelete); 
            /***************** 排序 ******************/
            $orderby = 'id';  // 默认排序字段
            $orderway = 'asc'; // 默认排序方式
            $odby = I('get.odby');
            if($odby && in_array($odby, array('id_asc','id_desc','price_asc','price_desc')))
            {
                if($odby == 'id_desc')
                    $orderway = 'desc';
                elseif ($odby == 'price_asc')
                    $orderby = 'price';
                elseif ($odby == 'price_desc')
                {
                    $orderby = 'price';
                    $orderway = 'desc';
                }
            }
            /************ 翻页 *************/
            // 总的记录数
            $count = $this->where($where)->count();
            // 生成翻页对象
            $page = new ThinkPage($count, 2);
            // 获取翻页字符串
            $pageString = $page->show();
            // 取出当前页的数据
            $data = $this->where($where)->limit($page->firstRow.','.$page->listRows)->order("$orderby $orderway")->select();
            
            //echo $this->getLastSql();
            
            return array(
                'page' => $pageString,
                'data' => $data,
            );
        }
  • 相关阅读:
    第4章-控制执行流程
    第3章-运算符
    第2章-对象
    第10章-内部类II
    第10章-内部类
    基于gtest、gmock、mockcpp和lcov的C语言LLT工程 —— LLT构造和lcov查看覆盖率实例
    字符设备驱动框架讲解
    基于Hadoop分布式集群YARN模式下的TensorFlowOnSpark平台搭建
    给 Virtualbox 中 Ubuntu 系统设置静态 IP
    小白请教几个关于Java虚拟机内存分配策略的问题
  • 原文地址:https://www.cnblogs.com/yexiangwang/p/4928838.html
Copyright © 2020-2023  润新知