*【功能点】php商品列表页的搜索

 

 

控制器代码:

 

//搜索查询
public function sousuo(){
    $param = $this->request->param();       //接收到的是空数组,如果带上查询条件就不是空的了

    //查数据
    $stockModel = new SellModel();
    $res = $stockModel->inquiryStockList($param);

    //form表單提交,點擊查询的时候,条件還会显示在条件框中
    $this->assign('start_time', isset($param['start_time']) ? $param['start_time'] : '');
    $this->assign('end_time', isset($param['end_time']) ? $param['end_time'] : '');
    $this->assign('keyword', isset($param['keyword']) ? $param['keyword'] : '');    //关键词-》改成类型了

    return $this->fetch('index',[
        'sell' => $res
    ]);
}

 

 

 

模型中的代码:

 

/** 模型中的代码

* 查询商品列表

* @param array $param 查询条件,默认为空

*/

public function inquiryStockList($param = []){

//判断接收到的数据是否为空

/*if(!$param){

$this->error('查询参数不正确!');

}*/

 

//默认查询商品状态为2的全部商品

$where['status'] = 2; //精髓,关键点在于把所有条件,都是$where数组的,通过判断控制查询条件

 

//根据分类查询

$category = empty($param['category']) ? 0 : $param['category'];

if(!empty($category)){

$where['category_id'] = $category;

}

 

//时间转换成时间戳,3次判断

$startTime = empty($param['start_time']) ? 0 : strtotime($param['start_time']);

$endTime = empty($param['end_time']) ? 0 : strtotime($param['end_time']);

if($startTime && $endTime){

$where['update_time'] = [['>=',$startTime],['<=',$endTime]]; //大于起始时间,小于结束时间

} else {

if($startTime){

$where['update_time'] = ['>=',$startTime];

}

if($endTime){

$where['update_time'] = ['<=',$endTime];

}

}

 

//型号 模糊查询

$keyWord = empty($param['keyword']) ? "" : $param['keyword'];

if(!empty($keyWord)){

$where['version'] = ['like',"%$keyWord%"];

}

 

$result = $this->where($where)

->field('id,brand,version,veins,real_price,num,sell_sum,update_time,remarks')

->order('id','desc')

->paginate(); //换成分页

//echo $this->getLastSql();        //打印sql语句

return $result;

}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值