首页 > 网站 > 建站经验 > 正文

ecshop商品属性排序的问题

2024-04-25 20:43:27
字体:
来源:转载
供稿:网友

情况一:添加新产品时,让属性按照添加的顺序(属性id)排列

修改/inclues/lib_goods.php

/* 获得商品的规格 */

$sql = "SELECT a.attr_id, a.attr_name, a.attr_group, a.is_linked, a.attr_type, ".

"g.goods_attr_id, g.attr_value, g.attr_price " .

'FROM ' . $GLOBALS['ecs']->table('goods_attr') . ' AS g ' .

'LEFT JOIN ' . $GLOBALS['ecs']->table('attribute') . ' AS a ON a.attr_id = g.attr_id ' .

"WHERE g.goods_id = '$goods_id' " .

'ORDER BY g.goods_attr_id, a.sort_order, g.attr_price';

$res = $GLOBALS['db']->getAll($sql);

情况二:在复制商品时属性排序跟原商品相反到处理

修改/inclues/lib_goods.php

/**

* 取得商品属性

* @param int $goods_id 商品id

* @return array

*/

function get_goods_attr($goods_id)

{

$attr_list = array();

$sql = "SELECT a.attr_id, a.attr_name " .

"FROM " . $GLOBALS['ecs']->table('goods') . " AS g, " . $GLOBALS['ecs']->table('attribute') . " AS a " .

"WHERE g.goods_id = '$goods_id' " .

"AND g.goods_type = a.cat_id " .

"AND a.attr_type = 1".' ORDER BY a.attr_id';

$attr_id_list = $GLOBALS['db']->getCol($sql);

$res = $GLOBALS['db']->query($sql);

while ($attr = $GLOBALS['db']->fetchRow($res))

{

if (defined('ECS_ADMIN'))

{

$attr['goods_attr_list'] = array(0 => $GLOBALS['_LANG']['select_please']);

}

else

{

$attr['goods_attr_list'] = array();

}

$attr_list[$attr['attr_id']] = $attr;

}

$sql = "SELECT attr_id, goods_attr_id, attr_value " .

"FROM " . $GLOBALS['ecs']->table('goods_attr') .

" WHERE goods_id = '$goods_id' " .

"AND attr_id " . db_create_in($attr_id_list).' ORDER BY goods_attr_id';

$res = $GLOBALS['db']->query($sql);

while ($goods_attr = $GLOBALS['db']->fetchRow($res))

{

$attr_list[$goods_attr['attr_id']]['goods_attr_list'][$goods_attr['goods_attr_id']] = $goods_attr['attr_value'];

}

return $attr_list;

}

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表