当前位置 : 主页 > 网络编程 > PHP >

Tp 通用search 代码

来源:互联网 收集:自由互联 发布时间:2021-06-28
Tp 通用search 代码 后台搜索代码部分public function search($pagesize){/***************搜索代码实现*****************/$where=array();$pp=I('get.brand_id');if($pp){$where['brand_id']=array('eq',$pp);}//分类,注意子分类也应
Tp 通用search 代码
后台搜索代码部分

public function search($pagesize){
		/***************搜索代码实现*****************/
		$where=array();
		$pp=I('get.brand_id');
		if($pp){
			$where['brand_id']=array('eq',$pp);
		}
		//分类,注意子分类也应该在搜索范畴
		$ct=I('get.cat_id');
		if($ct){
			$goods=$this->cateSearch($ct);
			$where['a.id']=array('in',$goods);
		}
		$gn=I('get.gn');
		if($gn)	
			$where['goods_name']=array('like',"%$gn%");
		//价格 从---到-----
		$sp=I('get.sp');
		$ep=I('get.ep');
		if($sp&&$ep) 
			$where['shop_price']=array('between',array($sp,$ep));
		elseif($sp)
			$where['shop_price']=array('egt',$sp);
		elseif($ep)
			$where['shop_price']=array('elt',$ep);
		//是否上架
		$ios=I('get.ios');
		if($ios)
			$where['is_on_sale']=array('eq',$ios);
		//时间
		$st=I('get.st');
		$et=I('get.et');
		if($st&&$et) 
			$where['addtime']=array('between',array($st,$et));
		elseif($st)
			$where['addtime']=array('egt',$st);
		elseif($et)
			$where['addtime']=array('elt',$et);
		/***********************排序************************/		
		
		//默认排序
		$orderby ='a.id';
		$orderway='desc';
		$odby=I('get.odby');
		//如果传了
		if($odby){
			switch ($odby) {
				case 'id_desc':
		/*					$orderby ='id';
					$orderway='desc';*/
					break;
				case 'id_asc':
					$orderway='asc';
					break;
				case 'price_desc':
					$orderby='shop_price';
					break;
				case 'price_asc':
					$orderby='shop_price';
					$orderway='asc';
					break;									
			}
		}
		/****************数据列表和分页************/
		$User = M('Goods'); // 实例化User对象
		$count= $User->where($where)->count();// 查询满足要求的总记录数
		$Page = new \Think\Page($count,$pagesize);// 实例化分页类 传入总记录数和每页显示的记录数(25)
		$show = $Page->show();// 分页显示输出
		// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
		$list = $User->order("$orderby $orderway")
		//注意c和e两个表的字段名重名,所以需要其一个别名区分一下
		->field('a.*,b.brand_name,c.cat_name,group_concat(e.cat_name separator "") ext_cat_name')				//连表查询的字段
		->alias('a')							//默认表的别名
		->join('LEFT JOIN __BRAND__ b on a.brand_id=b.id')//join语句
		->join('LEFT JOIN __CATEGORY__ c on a.cat_id=c.id')
		->join('LEFT JOIN __GOODS_CAT__ d on a.id=d.goods_id')
		->join('LEFT JOIN __CATEGORY__ e on d.cat_id=e.id')
		->where($where)
		->limit($Page->firstRow.','.$Page->listRows)
		->group('a.id')
		->select();
		return array(
				'list'=>$list,
				'page'=>$show,
			);
	}
上一篇:js 打印部分页面
下一篇:Mysqli.php
网友评论