zoukankan      html  css  js  c++  java
  • ThinkPHP框架,按分类,计算商品价格区间,来完成价格搜索

     //取出分类下的筛选属性
    	    $cateId=I('get.cid');
    	    /********计算这个分类下商品的七个价格区间的范围******/
    	    $goodsModel = D("Goods");
    	    $goodsPriceData=$goodsModel->field('MIN(shop_price) minprice,MAX(shop_price) maxprice,GROUP_CONCAT(shop_price) as priceStr')
    	    ->where(array(
    	        'cat_id'=>array('eq',$cateId),
    	        'is_delete'=>array('eq',0),
    	        'is_on_sale'=>array('eq',1),
    	    ))->find();
    	    
    	    //算法:计算商品价格的七个区间
    	     $priceNumber=7;
    	    $sprice=ceil(($goodsPriceData['maxprice']-$goodsPriceData['minprice'])/$priceNumber);
    	    $firsetPrice = $goodsPriceData['minprice'];
    	    //接收七个区间的价格范围
    	    $_priceNumber=array();
    	    for($i=0;$i<$priceNumber;$i++){
    	        if($i<($priceNumber-1))
    	        $_priceNumber[]=(floor($firsetPrice/10)*10).'-'.(floor(($firsetPrice+$sprice)/10)*10-1);
    	        else
    	        $_priceNumber[]=(floor($firsetPrice/10)*10).'-'. ceil($goodsPriceData['maxprice']/10)*10;
    	        
    	        $firsetPrice+=$sprice;
    	    }
    	    //把从商品中取出来的价格字符串转化成数组后,
    	    $goodsPrice=explode(',',$goodsPriceData['priceStr']);
    	    sort($goodsPrice);
    	    //在价格区间中做比对,如果区间中有商品保存价格区间,否则删除
    	    foreach($_priceNumber as $k => $v){
    	         $a = explode('-', $v);
    	        $start=$a[0];
    	        $end =$a[1];
    	        $panduan=array();
    	        foreach($goodsPrice as $k1 => $v1){
    	            $v1=floor($v1);
    	               //价格在此区间,把该价格保存在数组中
    	            if($v1>=$start && $v1<=$end)
    	                $panduan[]=$v1;
    	            
    	        }
    	       //如果取出的商品没有在此价格区间的,删除该区间范围
    	       if(empty($panduan))
    	           unset($_priceNumber[$k]);
    	       
    	    }
    

      

  • 相关阅读:
    关于echarts、layer.js和jqGrid的知识点
    Aspose.Cell和NPOI生成Excel文件2
    Aspose.Cell和NPOI生成Excel文件
    关于JS嵌套点击事件的问题。
    有关二维码学习小整理
    二维码
    微信扫码登录实现原理
    C#模拟Http与Https请求框架实例
    C#中调用user32.dll库的keybd_Event函数,操作键盘
    对象数组 深拷贝
  • 原文地址:https://www.cnblogs.com/kevinggk/p/7131628.html
Copyright © 2011-2022 走看看