我正在使用Zen Cart 1.5.5 . 有一种方法可以生成具有从订单X到订单Y的订单历史的Excel文档 .
MS Excel table shown here一切正常 - 产品名称,总数量等 . 它计算一般产品的订购次数 .
问题是我有额外的字段,每个产品的大小 . 我的代码目前每个产品计算一次大小 .
单个订单可以具有:
x1 Everyday T-shirt, size L
x5 Pyjamas, size M
x1 Other, size XXL
结果将是:check out the result
所以数字不会加起来,如上图所示 .
相关数据库表 - orders,orders_products和orders products attributes
SELECT * FROM shop_orders
LEFT JOIN shop_orders_products ON shop_orders.orders_id = shop_orders_products.orders_id
LEFT JOIN shop_orders_products_attributes ON shop_orders_products.orders_products_id = shop_orders_products_attributes.orders_products_id
WHERE shop_orders.orders_id > 1
AND shop_orders.orders_id > XXX
AND shop_orders.orders_id < YYY
ORDER BY shop_orders_products.products_id ASC
orders_id 可以是多行的相同数字
products_id 是产品的ID,这是我如何获得特定产品的订单总数,但不是它的尺寸
products_quantity 显示任意订单中一件商品的订购数量(SIZE)
products_options_values 是大小的名称 - M,L,XL,XXL等
与计算相关的行:
$products_options_values[$id][] = $row['products_options_values'];
$elementCount = array_count_values($products_options_values[$id]);
正如您可能在不知道Zen Cart的情况下猜测的那样,它每行只计算一次,无论它是多于一行 .
tl;dr 我需要你的PHP代码帮助,我目前从查询中得到了完美的结果,但我需要计算 products_quantity 每 products_id 按 products_options_values 从所有 orders_id 分组 .
太多的文字,抱歉 . 答案很简单,但我阻止了 .