【问题标题】:CodeIgniter ActiveRecord MultiplyCodeIgniter ActiveRecord 相乘
【发布时间】:2011-06-05 22:16:22
【问题描述】:

我正在计算我库存中所有产品的总价值。表中的每种产品都有价格和数量。所以我需要将每个产品的价格乘以数量,然后将所有这些加在一起以获得所有产品的总和。根据上一个问题,我现在有 MySQL 查询来执行此操作:

select sum(product_price*product_quantity) as stockvalue from products

但现在我正在尝试使用 CodeIgniter 的 ActiveRecord 找出正确的方法。

感谢您对此提出的任何建议。我查看了文档,但只能找到一个字段的 select_sum(),而不是两个相乘的总和。

我尝试过使用以下方法:

public function getStockValue() {
$this->db->select('sum('product_price'*'product_quantity') as stockvalue', FALSE);
$this->db->from('products');
$query = $this->db->get();
return $query->row()->stockvalue;
}

【问题讨论】:

    标签: codeigniter activerecord


    【解决方案1】:

    试试这个:

    $this->db->select('sum(`product_price`*`product_quantity`) as stockvalue', FAlSE);
    

    我不确定您是否需要第二个参数。我已经有一段时间没有使用 CI 了。

    【讨论】:

    • 您好,谢谢您的回复。不幸的是,这并没有奏效。 :S
    • 抱歉,尼尔。好吧,我认为唯一的解决方案是做$this->db->select('sum(product_price*product_quantity') as stockvalue');。真的没有什么区别。您可能还需要提供 false 作为附加参数参数,因此 CI 不会尝试保护查询。
    • 你试过 $this->db->query()
    • 刚刚用我正在尝试的功能更新了我最初的问题。不确定这是否是正确的方法? :s
    • 不,不是。使用 ` 符号(它应该在键盘上的退出按钮下方)作为表名。
    【解决方案2】:
    $this->db->select('sum(product_price) * sum(product_quantity) as stockvalue', FALSE);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多