Я использую Zen Cart 1.5.5.Существует способ создания документа Excel с историей заказов из заказа X в заказ Y.
Таблица MS Excel, показанная здесь Все отлично работает - название продукта, общее количество и т. Д. Он рассчитывает, какмного раз продукт заказан вообще.
Проблема в том, что у меня есть дополнительное поле с размерами для продукта.В настоящее время мой код рассчитывает размер один раз для каждого продукта.
Один заказ может иметь:
x1 Everyday T-shirt, size L
x5 Pyjamas, size M
x1 Other, size XXL
Результат будет: проверить результат
Таким образом, цифры не складываются, как вы можете видеть на картинке выше.
Связанные таблицы базы данных - orders , orders_products и orders products attribute
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 - это идентификатор продукта, вот какЯ получаю общее количество заказов определенного продукта, но не его размеры
products_quantity отображает заказанное количество одного элемента любого заказа (РАЗМЕР)
products_options_values - это имя размера - M, L, XL, XXL и т. Д.
Строка, связанная с вычислениями:
$products_options_values[$id][] = $row['products_options_values'];
$elementCount = array_count_values($products_options_values[$id]);
Как вы, вероятно, догадались, не знаяДзен-корзину, в частности, он учитывает каждый размер только один раз за строку, независимо от того, является ли он болеее чем один.
tl; dr Мне нужна ваша помощь с кодом php, где я в настоящее время получаю идеальные результаты запроса, но мне нужно рассчитать products_quantity за products_id сгруппирован по products_options_values из всех orders_id .
Слишком много текста, извините.Ответ прост, но я заблокировал.