ecshop 商品列表页面 按销量排行

因为网站后期需要,按销量排序。这种排序方法,需要创建一个字段来保存销量值,所以需要把数据库中的销量值取出保存到新的字段;

第一步:在表“ecs_goods”添加字段:salesnum(注:自定义字段名)

  然后,随便找个地方,运行下面的函数,就可以把以前销售数据的销量值,保存到新建的字段里(PS:运行后,如果新字段有数据了,就说明运行成功,那么这个函数就没有作用了,最好删除了)

function aa()
{
    $goods_id="select goods_id from ecs_goods";
    $res = $GLOBALS['db']->getAll($goods_id);
    foreach ($res AS $idx => $row)
    {
        $sql="update ecs_goods set salesnum = (select IFNULL(SUM(goods_number), 0) from ecs_order_goods where goods_id=".$row['goods_id'].") where goods_id=".$row['goods_id'];
        $GLOBALS['db']->query($sql);
    }  
}   

第二步:打开根目录下文件:flow.php

找到下面的代码:


    $sql “INSERT INTO ” $ecs->table(‘order_goods’) “( ” .
                “order_id, goods_id, goods_name, goods_sn, product_id, goods_number, market_price, “.
                “goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id) “.
            ” SELECT ‘$new_order_id’, goods_id, goods_name, goods_sn, product_id, goods_number, market_price, “.
                “goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id”.
            ” FROM ” .$ecs->table(‘cart’) .
            ” WHERE session_id ‘”.SESS_ID.”‘ AND rec_type ‘$flow_type’”;
    $db->query($sql);

在这段代码的下面,添加如下代码:


 $sql “update ” $ecs->table(‘goods’) ” set salesnum=salesnum +”.
   ” (SELECT goods_number”.
            ” FROM ” .$ecs->table(‘cart’) .
            ” WHERE session_id ‘”.SESS_ID.”‘ AND rec_type ‘$flow_type’) where goods_id=”.
   ” (SELECT goods_id”.
            ” FROM ” .$ecs->table(‘cart’) .
            ” WHERE session_id ‘”.SESS_ID.”‘ AND rec_type ‘$flow_type’)”;
 $db->query($sql);

上面代码在多商品结算时会出错,用下面的代码:


$sql “update ” .$GLOBALS['ecs']->table(‘goods’) ” AS a, “.$GLOBALS['ecs']->table(‘cart’) ” AS “.
        ” set a.salesnum= a.salesnum+ b.goods_number”.
        ” WHERE a.goods_id=b.goods_id AND b.session_id ‘”.SESS_ID.”‘ AND b.rec_type ‘$flow_type’”;

$db->query($sql);

第三步:打开文件:default\library\goods_list.lbi,找到下面的代码:

ASCDESC#goods_list”>{$pager.order}default.gif” alt=”{$lang.sort.last_update}”>

在上面那段代码的下面添加:

ASCDESC#goods_list”>{$pager.order}default.gif” alt=”按销量排行”>

两段代码的区别,自己去分析看看吧。

第四步:打开文件:category.php(根目录下面的),找到如下代码:

$sort  (isset($_REQUEST['sort'])  && in_array(trim(strtolower($_REQUEST['sort'])), array(‘goods_id’, ‘shop_price’, ‘last_update’)))

修改为:

$sort  (isset($_REQUEST['sort'])  && in_array(trim(strtolower($_REQUEST['sort'])), array(‘goods_id’, ‘shop_price’, ‘last_update’,'salesnum’)))

OK!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值