我正在使用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

所以数字不会加起来,如上图所示 .

相关数据库表 - ordersorders_productsorders 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_quantityproducts_idproducts_options_values 从所有 orders_id 分组 .

太多的文字,抱歉 . 答案很简单,但我阻止了 .