Php Opencart单独获取特定订单总计代码标题的值
这可能是一个复杂的问题,我一直在敲我的头好几天没有解决办法,甚至谷歌也没有找到答案。在opencart中,数据库中有一个名为order_totals的表,其结构如下: 默认情况下,Opencart附带一个模型函数,该函数根据订单Id返回订单总额,比如订单Id='1' 因此,如果您将该函数与数据库的附加图像进行比较,它应该返回4项小计、运费、付款、总计,这在查看订单号和订单号时是清楚的 我的问题是,如何获得特定代码的值,以便在视图表中单独列出它们,如下所示 通常,我们可以在SQL查询中添加过滤代码以返回请求的值 例如,如果我想要代码传送的值,我可以使用以下代码:Php Opencart单独获取特定订单总计代码标题的值,php,mysql,sql,opencart,e-commerce,Php,Mysql,Sql,Opencart,E Commerce,这可能是一个复杂的问题,我一直在敲我的头好几天没有解决办法,甚至谷歌也没有找到答案。在opencart中,数据库中有一个名为order_totals的表,其结构如下: 默认情况下,Opencart附带一个模型函数,该函数根据订单Id返回订单总额,比如订单Id='1' 因此,如果您将该函数与数据库的附加图像进行比较,它应该返回4项小计、运费、付款、总计,这在查看订单号和订单号时是清楚的 我的问题是,如何获得特定代码的值,以便在视图表中单独列出它们,如下所示 通常,我们可以在SQL查询中添加过滤代码
public function getOrderTotals($order_id) {
$query = $this->db->query("SELECT value FROM " . DB_PREFIX . "order_total WHERE code = 'shipping' AND order_id = '" . (int)$order_id . "' ORDER BY sort_order");
return $query->rows;
}
这将返回我们示例中订单id为1时装运所需的值
array1{[0]=>array1{[value]=>string6 5.0000}
这是伟大的,但要获得的价值航运,分_总,付款和总,我需要创建多个功能分开,我不认为这是一个有效的解决方案
如何分别获取每个代码的值并在管理视图仪表板中列出它们
谢谢大家! 您可以使用条件聚合直接使用SQL生成预期结果 考虑:
SELECT
order_id,
MAX(CASE WHEN code = 'sub_total' THEN value END) sub_total,
MAX(CASE WHEN code = 'shipping' THEN value END) flat_shipping_rate,
MAX(CASE WHEN code = 'payment_based_fee' THEN value END) payment,
MAX(CASE WHEN code = 'total' THEN value END) total
FROM order_totals
GROUP BY order_id
如果需要筛选特定的订单id,可以向查询中添加WHERE子句
SELECT
order_id,
MAX(CASE WHEN code = 'sub_total' THEN value END) sub_total,
MAX(CASE WHEN code = 'shipping' THEN value END) flat_shipping_rate,
MAX(CASE WHEN code = 'payment_based_fee' THEN value END) payment,
MAX(CASE WHEN code = 'total' THEN value END) total
FROM order_totals
GROUP BY order_id