您当前的位置: 首页 >  搜索

苗先生的PHP记录

暂无认证

  • 6浏览

    0关注

    190博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Tp多条件搜索,like模糊查询,时间查询

苗先生的PHP记录 发布时间:2019-09-18 23:09:53 ,浏览量:6

demo: o2o app\admin\controller\deal app\common\model\deal app\admin\view\deal\index

效果 :

无条件 : SELECT * FROM o2o_deal WHERE status = 1 ORDER BY id DESC 有条件 : SELECT * FROM o2o_deal WHERE category_id = 5 AND city_id = 1 AND name LIKE ‘%酸%’ AND status = 1 ORDER BY id DESC

视图

		
全部分类 {volist id="vo" name="categorys"} {$vo.name} {/volist} 全部城市 {volist id="vo" name="citys"} {$vo.name} {/volist} 日期范围: -  搜索

控制器

data : 获取的条件 sdata : 组装成品的条件

 public function index(){
        // 搜索开始  获取组装条件
        $data = input('get.');
        $sdata = [];
        if (!empty($data['category_id'])){ $sdata['category_id'] = $data['category_id']; }
        if (!empty($data['city_id'])){ $sdata['city_id'] = $data['city_id']; }
        if (!empty($data['start_time']) && !empty($data['end_time']) && strtotime($data['end_time'])>strtotime($data['start_time'])){
            $sdata['start_time'] = [
                'gt',strtotime($data['start_time']),
            ];
            $sdata['end_time'] = [
                'lt',strtotime($data['end_time']),
            ];
        }
        if (!empty($data['name'])){
            $sdata['name'] = ['like','%'.$data['name'].'%'];
        }
        //搜索条件结束


        $deal = $this->obj->getDealByStatus(1,$sdata);
        $citys = model('city')::getCityTree(); //获取所有可用的城市,树形
        $categorys = model('category')->getNormalCategoryByParentId();  //获取所有可用的一级类型
        foreach ($deal as $k => $v){
            $category = model('category')->where(['id'=>$v['category_id']])->find();
            $v['category'] = $category['name'];
            $city = model('city')->where(['id'=>$v['city_id']])->find();
            $v['city'] = $city['name'];
        }
        return $this->view->fetch('',[
            'deal' => $deal,
            'citys' => $citys,
            'categorys' => $categorys,
            'category_id' => empty($data['category_id']) ? '' : $data['category_id'],
            'city_id' => empty($data['city_id']) ? '' : $data['city_id'],
            'start_time' => empty($data['start_time']) ? '' : $data['start_time'],
            'end_time' => empty($data['end_time']) ? '' : $data['end_time'],
            'name' => empty($data['name']) ? '' : $data['name'],
        ]);
    }
model

deal

	 /**
     * 通过状态获取商家数据
     */
    public function getDealByStatus($status = 0, $data = [])
    {
        $data['status'] = $status;
        $order = [
            'id' => 'desc',
        ];
        $res = $this->where($data)
            ->order($order)
            ->paginate(10);

        echo $this->getLastSql();
        return $res;
    }

category

	//通过id获取子分类  默认一级分类
    public function getNormalCategoryByParentId($parentId = 0)
    {
        $where = [
            'status' => 1,
            'parent_id' => $parentId,
        ];
        $order = [
            'id' => 'desc',
        ];
        return $this->where($where)
            ->order($order)
            ->select();
    }

city

	public static function getCityTree($parent_id = 0,$level = 0, &$res = [])
    {
        $city = self::where(['parent_id'=>$parent_id, 'status'=>1])->order(['listorder'=>'desc'])->select();
        foreach ($city as $k => $v){
            $v['name'] = str_repeat('--',$level*2).$v['name'];
            $res[] = $v;
            self::getCityTree($v['id'],$level+1,$res);
        }
        return $res;
    }
关注
打赏
1665468453
查看更多评论
立即登录/注册

微信扫码登录

0.0454s