网站地图    收藏   

主页 > 后端 > ecshop教程 >

ecshop商品属性排序的问题和解决方法 - ecshop

来源:自学PHP网    时间:2014-11-28 23:31 作者: 阅读:

[导读] 情况一:添加新产品时,让属性按照添加的顺序(属性id)排列,修改/inclues/lib_goods.php:$sql=SELECTa.attr_id,a.attr_name,a.attr_group,a.is_linked,a.attr_type,.g.goods_attr_id,g.attr_value,......

ecshop商品属性排序的问题和解决方法

情况一:添加新产品时,让属性按照添加的顺序(属性id)排列,修改/inclues/lib_goods.php:

  1. $sql = "SELECT a.attr_id, a.attr_name, a.attr_group, a.is_linked, a.attr_type, "
  2.                 "g.goods_attr_id, g.attr_value, g.attr_price " . 
  3.             'FROM ' . $GLOBALS['ecs']->table('goods_attr') . ' AS g ' . 
  4.             'LEFT JOIN ' . $GLOBALS['ecs']->table('attribute') . ' AS a ON a.attr_id = g.attr_id ' . 
  5.             "WHERE g.goods_id = '$goods_id' " . 
  6.             'ORDER BY g.goods_attr_id, a.sort_order, g.attr_price'
  7.     $res = $GLOBALS['db']->getAll($sql); 

情况二:在复制商品时属性排序跟原商品相反到处理,修改/inclues/lib_goods.php:

  1. function get_goods_attr($goods_id
  2.     $attr_list = array(); 
  3.     $sql = "SELECT a.attr_id, a.attr_name " . 
  4.             "FROM " . $GLOBALS['ecs']->table('goods') . " AS g, " . $GLOBALS['ecs']->table('attribute') . " AS a " . 
  5.             "WHERE g.goods_id = '$goods_id' " . 
  6.             "AND g.goods_type = a.cat_id " . 
  7.             "AND a.attr_type = 1".' ORDER BY a.attr_id'
  8.     $attr_id_list = $GLOBALS['db']->getCol($sql); 
  9.     $res = $GLOBALS['db']->query($sql); 
  10.     while ($attr = $GLOBALS['db']->fetchRow($res)) 
  11.     { 
  12.         if (defined('ECS_ADMIN')) 
  13.         { 
  14.             $attr['goods_attr_list'] = array(0 => $GLOBALS['_LANG']['select_please']); 
  15.         } 
  16.         else 
  17.         { 
  18.             $attr['goods_attr_list'] = array(); 
  19.         } 
  20.         $attr_list[$attr['attr_id']] = $attr
  21.     } 
  22.     $sql = "SELECT attr_id, goods_attr_id, attr_value " . 
  23.             "FROM " . $GLOBALS['ecs']->table('goods_attr') . 
  24.             " WHERE goods_id = '$goods_id' " . 
  25.             "AND attr_id " . db_create_in($attr_id_list).' ORDER BY goods_attr_id'
  26.     $res = $GLOBALS['db']->query($sql); 
  27.     while ($goods_attr = $GLOBALS['db']->fetchRow($res)) 
  28.     { //开源软件:phpfensi.com 
  29.         $attr_list[$goods_attr['attr_id']]['goods_attr_list'][$goods_attr['goods_attr_id']] = $goods_attr['attr_value']; 
  30.     } 
  31.     return $attr_list

补充:上面说的是同一属性里属性值的排序.

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论