ThinkPHP框架,按分类,计算商品价格区间,来完成价格搜索

摘要:
//获取类别下的筛选器属性$cateId=I********计算该类别下七个商品价格范围********/$goodsModel=D$goodsPriceData=$goodsModel-˃field-˃where-˃find();//算法:计算七个商品价格区间$priceNumber=7$sprice=ceil;$firsetPrice=$goodsPriceData['minprice'];//接收七个范围的价格范围$_priceNumber=array();对于{如果$_priceNumber[]=.'-'.;否则$_priceNumber[]=.'-'.ceil*10;$firsetPrice+=$sprice;}//将商品的价格字符串转换为数组后,$goodsPrice=explore;排序;//在价格范围内进行比较。如果该范围内有商品可保存价格范围,请删除foreach{$a=explore;$start=$a[0];$end=$a[1];$panduan=array();foreach{$v1=floor($v1);//如果价格在该范围内,则在$panduan[]=$v1;}//如果检索到的商品不在此价格范围内,请删除范围ifunset;}
 //取出分类下的筛选属性
	    $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]);
	       
	    }

  

免责声明:文章转载自《ThinkPHP框架,按分类,计算商品价格区间,来完成价格搜索》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇docker初识docker安装、基于docker安装mysql及tomcat、基本命令Word TOC域的使用说明下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Latex 双栏模式下表格太长怎么办?

有时一张桌子放不下任何一页。如果使用原始表包,它可能会溢出。因此,自动更改表格是很自然的。对于许多在线材料,建议使用Longtable。但是因为我的文章是双栏文章,所以这个包会有问题。例如,表格将只浮动在文本上,标题的显示也有问题。经过长时间的尝试,我终于找到了解决方案,而且非常简单。只需缩放表格。方法如下:egin{table*}[!...

boost的下载和安装(windows版)

1 Introduction boost是一个准C++标准库,相当于STL的延续和扩展。它的设计理念类似于STL,它使用泛型来最大化重用。对于2boost的下载和安装,我们可以在官方boost网站上下载最新的boost版本。因为boost库可以像标准库一样在多个平台上运行,所以它只以源代码的形式正式提供。这是因为boost windows的安装版本不仅与处理...

Spark 数据读取与保存(输入、输出)

SaveAsTextFile(字符串)scala&gt:importsscala.util.parsing.json.json(2)将json文件上载到HDFS[lxl@hadoop102spark]$hadoopfs投入。/示例/src/main/resources/people。json/(3)读取文件scala&gt;...

JS学习笔记(一)JS处理JSON数据

在数据传输过程中,json以文本的形式传输,也就是字符串,而JS则对json对象进行操作。因此,JSON对象和JSON字符串之间的相互转换是关键。如果系统提示您找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。...

阿里巴巴开源性能监控神器Arthas初体验

今天跟大家介绍一款阿里巴巴开源的性能分析神器Arthas官方网站:https://alibaba.github.io/arthas/index.htmlArthas能为你做什么事情呢?接下来,我们找个项目实际体验一下Arthas。﹏﹏﹏﹏上述几个命令只是性能测工作中常用的一些操作,Arthas还有很多其他维度的监控数据,大家可以去官网看下用户手册学习更多操作...

Linux系统glibc库版本信息查看

有时我们经常需要检查当前系统的glibc版本。您可以按如下方式进行检查:/lib/libc。所以。6有时:/lib/x86-64-linux/libc。因此6.将文件作为命令执行。为什么库可以直接运行?Glibc是gnu发布的libc库,即c运行时。glibc是linux系统中最低级别的api,几乎任何其他运行时都将依赖glibc。Gcc和libc是相互依赖...