有点崩溃的get_extension_goods
2016-07-07 16:18 来源:www.chinab4c.com 作者:ecshop专家
get_extension_goods 这个函数 从注释来看 是取所有扩展分类是指定分类的产品id 问题来了 他把我所有没有任何扩展分类的产品都取到了,很是郁闷 比如我有很多产品,根本就没有任何扩展分类,居然也给调出来了,搞的我很郁闷 比如我想调用cat_id是20的产品,发现调出来很多cat_id是28的产品,而cat_id是28的所有产品都没有扩展分类, 郁闷! 本想去研究下程序呢,这个函数写的也比较隐晦不好看, 不知道这个是不是bug,希望管理员看下,我再研究研究 |
回答:
我当初做一个模板的时候也发现这个问题,后来因为赶工没认真看,直接去掉读取拓展分类 , |
是啊,可郁闷,赶工呢 我还不能去掉它,因为有些产品是有扩展分类的 咳, 慢慢研究吧, 研究到sql了 我是调用分类id是40的产品,生成的sql如下: AND (40 OR g.goods_id IN ('3','4','5','6',。。。。 是不是这里的问题呢?40是真的,OR后面虽然不成立,但是整个就成立了 就是说 AND 后面的cat_id限制没了,就是类别id是40的限制没有了 接着研究研究 |
晕死,还真是我所说的那样 把它的sql改成 g.cat_id=40就可以了 我宣布发现ecshop的一个bug get_extension_goods 这个函数对分类的限制,函数是这样写的 if (!empty($cats)) { $sql .= " AND (" . $cats . " OR " . get_extension_goods($cats) .")"; } 应该改成 if (!empty($cats)) { $sql .= " AND (g.cat_id in (" . $cats . ") OR " . get_extension_goods($cats) .")"; } 因为用户可能传过来的cat_id不是一个 而是 20,30,40这样的,所以用 in 不知道对不对,反正我是实践中 这样成功了,暂时认为我发现bug了,庆祝下。!! |
呵呵。。我就是那么改过来的。先去吧。吧工完成了。再研究。。bug嘛。有待商量, |
不要再待啊,我第一次花这么久研究 并提出来 就是因为喜欢这个系统,要不才没心情和时间写这些呢,直接改过 希望 验证下! |
俺帮你顶一下. 希望官方能给你颁奖 顺便给我提名下 |
恩,恩 感觉应该是他们忘了调用 get_children而是直接写cat_id了,这个里面有调用db_create_in产生 in 的操作 |
最近更新
常用插件
- ecshop订单聚合插件
ecshop订单聚合插件,主要是为了方便ecshop中订单产品到货情况的分析和...
- ecshop注册审核插件
ecshop插件介绍:ecshop会员注册审核插件,主要是在前台提供给注册的时候...
- ecshop的oss插件
ecshop的oss插件免费共享了,oss,ecshoposs...
- ecshop没登陆情况下订单查
ecshop没登陆情况下订单查询插件,主要是针对ecshop在没有登陆的情况下...
- ecshop虚拟发货插件
ecshop虚拟发货插件介绍: ecshop虚拟发货插件,主要为了通过后台手动录...
ecshop热门问答
ecshop热门资料
ecshop下载图片
ecshop缺货登记
ecshop完美
ecshop添加超值礼包
ecshopupdate
ecshop中文域名
ecshop淘宝帐号
ecshopip数据库
ecshoppayday
ecshop匯款通知
ecshop日历
ecshop网店盘点中
ecshop500错误
ecshoppingpai
ecshop小点
推荐人
ecshop救命!!!
ecshop失所
ecshopBugs
ecshop间隔
ecshop编码
ecshop简体中文
ecshop老手
ecshopdoen
ecshop今日特价
ecshop首页广告位
ecshop倍数
ecshop下拉
ecshop1shudian
ecshop淘宝分类