【问题标题】:ADD and Multiply array data in codeigniter在codeigniter中添加和乘法数组数据
【发布时间】:2014-08-08 16:56:25
【问题描述】:

我正在尝试在 codeigniter 中添加和乘以数组数据。我正在使用以下模型 best_outlet_chart()

function best_outlet_chart(){

        $this->db->select(array(
            'tbl_outlet_registration.outlet_name',
            'tbl_sub_products.sub_product_price',
            'tbl_order_products.quantity',
        ));

        $this->db->from('tbl_outlet_registration');
        $this->db->join('tbl_order_product_details', 'tbl_order_product_details.outlet_id=tbl_outlet_registration.outlet_id');
        $this->db->join('tbl_order_products', 'tbl_order_products.order_id=tbl_order_product_details.order_id');
        $this->db->join('tbl_sub_products', 'tbl_sub_products.sub_product_id=tbl_order_products.product_id','LEFT');
        $query = $this->db->get();
        return $query->result();
    }

上面的代码返回一个类似这样的数组

Array
(
    [0] => stdClass Object
        (
            [outlet_name] => Outlet A
            [sub_product_price] => 1000.00
            [quantity] => 1
        )

    [1] => stdClass Object
        (
            [outlet_name] => Outlet A
            [sub_product_price] => 50.00
            [quantity] => 50
        )

    [2] => stdClass Object
        (
            [outlet_name] => Outlet B
            [sub_product_price] => 10.00
            [quantity] => 70
        )

    [3] => stdClass Object
        (
            [outlet_name] => Outlet B
            [sub_product_price] => 10.00
            [quantity] => 1
        )
)

我想将 [sub_product_price] 与 Outlet A 和其他商店中的 [quantity] (sub_product_price*quantity) 相乘。不是所有的网点都在一起,而是分开。有人可以帮我解决这个问题吗

谢谢!! 安

我使用了以下代码,它给了我所有网点的总数,而不是单独的。

'SUM(tbl_sub_products.sub_product_price * tbl_order_products.quantity) as amount'

【问题讨论】:

  • 使用 GROUP BY outlet_name。这将对不同的网点进行分组
  • 是的,但它不会将 [sub_product_price] 与 [quantity] 相乘 (sub_product_price*quantity)
  • 会的。所以你可以使用 'SUM(tbl_sub_products.sub_product_price * tbl_order_products.quantity) as amount' 然后最后使用 GROUP BY outlet_name
  • 谢谢 :) :) 它有效

标签: php mysql arrays codeigniter


【解决方案1】:

由于我没有数据库表结构,因此我准备了一个包含您提到的列的单独表。

CREATE TABLE `tbl_outlet` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `outlet_name` varchar(255) NOT NULL,
  `sub_product_price` double(10,2) NOT NULL,
  `quantity` int(11) NOT NULL,
  PRIMARY KEY (`id`)
)

你可以使用这样的东西来获取你的结果

SELECT outlet_name, SUM( (
`sub_product_price` * `quantity`
) ) AS `total_amount`
FROM `tbl_outlet`
GROUP BY `outlet_name`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 2015-10-25
    相关资源
    最近更新 更多