请教计算商品价格区间的一个算法

elson1024 发布于 2014/10/16 18:43
阅读 1K+
收藏 0
    // 取得价格分级最小单位级数,比如,千元商品最小以100为级数

    $price_grade = 0.0001;

    //为啥是从-2开始

    for($i=-2; $i<= log10($row['max']); $i++)
    {
        $price_grade *= 10;
    }

    //跨度

    //$_CFG['supply_price_grade']为用户在后台输入要分几个阶级,是2个XXX-XXX还是3个XXX-XXX这样子

    //为啥这样计算$dx跨度?

    $dx = ceil(($row['max'] - $row['min']) / ($_CFG['supply_price_grade']) / $price_grade) * $price_grade;

    if($dx == 0)
    {
        $dx = $price_grade;
    }

    for($i = 1; $row['min'] > $dx * $i; $i ++);
    for($j = 1; $row['min'] > $dx * ($i-1) + $price_grade * $j; $j++);
    $row['min'] = $dx * ($i-1) + $price_grade * ($j - 1);

    for(; $row['max'] >= $dx * $i; $i ++);

    //上面那几个for计算$i,$j有啥意义?    

    $sql = "SELECT (FLOOR((g.price - $row[min]) / $dx)) AS sn, COUNT(*) AS goods_num  ".
               " FROM " . $ecs->table('buys') . " AS g ".
               " WHERE is_on_sale = 1 AND effective_time > '$today'  AND goods_type ='$goods_type' ".

               " GROUP BY sn ";

这个是ecshop里面计算价格区间的一段,每行都看得懂,但连起来就不懂了,路过的大神求请教
加载中
返回顶部
顶部