今天手头电商项目有个需求是:将订单中的优惠券自动发放给买家,所以要只更新优惠券表中的某几行数据,查了手册和网络都没有解决办法。

一开始用循环和遍历来做都是错的,因为update语句一下就更新掉所有符合条件的行了,而用子查询当条件来做又很不符合kiss(keep it simple, stupid.)的规范。

于是尝试将set语句加入ar,这下大功告成。

public function status($order_id, $slug)
{
if($slug==='2')
{
# 发货流程, 先判断是不是优惠券
if($this->_is_coupon_order($order_id))
{
$this->load->model('m_cart', 'cart', true);
$undiscounted = $this->cart->items($order_id);
$discounted = $this->cart->items($order_id, true);
$merged = array_merge($undiscounted, $discounted);
$this->db->where('status', 0)
->where('rule_id', $merged[0]->type_id)
->limit($merged[0]->item_quantity)
->set('user_id', $merged[0]->user_id)
->update('coupon');
}
$this->db->where('id', $order_id)->set('status', 2);
}
$this->db->update('order');
return $this->db->affected_rows();
}

  

最新文章

  1. 基本排序算法——shell排序java实现
  2. RAC初体验
  3. 不支持关键字“data source”
  4. JAVA类图
  5. Eclipse创建Maven时提示错误could not resolve archetype
  6. webstorage[html5的本地数据处理]
  7. 极客DIY:制作一个可以面部、自主规划路径及语音识别的无人机
  8. 自定义控件之 TextBox
  9. discuz x3在DIY模块中调用伪静态不成功,显示动态链接的解决办法
  10. json和string 之间的相互转换
  11. 20145129 《Java程序设计》第5周学习总结
  12. d3d导致cairo不正常
  13. Objective-C释解 Target-Action模式
  14. 拖数据库到x-code常见错误
  15. Windows Phone 8.1 多媒体(3):音乐
  16. Unicode、UTF-8 和 ISO8859-1到底有什么区别
  17. 经典面试题:一张表区别DOM解析和SAX解析XML
  18. 用JavaScript比较两个数组是否相等
  19. 30天代码day0
  20. python:爬虫获取淘宝/天猫的商品信息

热门文章

  1. apache配置多域名多站点记录
  2. TextVeiw 的 No package identifier when getting value for resource numb
  3. 获取HTML
  4. [Eclipse] - eclipse集成jboss7.1
  5. poj1985 Cow Marathon (求树的直径)
  6. asp.net前台代码中引入namespace的方法
  7. const 限定符
  8. ubuntu Unity Tweak Tool
  9. 启动项目时,报错;Address already in use: JVM_Bind<null>:8080
  10. linux学习笔记——基础命令