首页分类商品的bug和临时解决办法

2016-07-07 15:50 来源:www.chinab4c.com 作者:ecshop专家

最近在做一个单子时发现了这个bug。

引发bug发作的两个条件:
1、两个以上分类商品列表
2、商品设置扩展分类(属于两个以上分类,暂称“多属商品”)

bug表现:
1、如果第一个分类内有“多属商品”,这些“多属商品”会同时在其它分类显示(实际上不属于那些分类),而其它分类自己的“多属商品”却不会显示
2、如果第一个分类内没有“多属商品”,其它分类即使有“多属商品”,也不会显示

bug位置:
\includes\lib_goods.php852行 function get_extension_goods($cats)
这个“获得所有扩展分类属于指定分类的所有商品ID”有bug

bug原因:
开发人员出于性能考虑,用“static” 实现类似缓存的功能,但没处理好

临时解决办法:
将854行的 static $extension_goods_array = '';去掉static改为$extension_goods_array = '';

期待官方下次更新修正这个bug!


回答:
因为这个,我的网店都重装了。郁闷。

临时解决方法有误,现已经修正

也可以改成这样:
function get_extension_goods($cats)
{
$sql = 'SELECT goods_id FROM ' . $GLOBALS['ecs']->table('goods_cat') . " AS g WHERE $cats";
$extension_goods_array = $GLOBALS['db']->getCol($sql);
return db_create_in($extension_goods_array, 'g.goods_id');
}


只剩下else里的内容