@aarty20
Front-end / Wordpress developer

Как правильно перебрать массив и вывести результат?

Делаю для WooCommerce кастомную таблицу продаж.
Задача, показать количество продаж определенного товара за месяц для каждой страны.

В итоге таблица будет выглядеть так:
Странна\Товар_|_Товар А_|_Товар Б_|_Товар В_|_Товар Г
-------------------------------------------------------------------
Страна №1_____|___1______|__0______|__1________|__0
Страна №2_____|___0______|__2______|__1________|__0

Уже есть массив заказов (свой запрос в БД), приходит в таком виде: $order {дата заказа, id заказа, название товара, страна доставки} - только те данные, которые нужны для таблицы.

Дальше перебираю массив заказов и формирую результаты, для каждого товара if товар == такой-то && if страна доставка == такая {$tovat_1_strana_1++}.

И дальше собираю массив результатов и во фронте в нужном месте таблицы просто вывожу результат в таблицу.

Понимаю что бред писать 150 запросов, можно же как-то оптимизировать все, но как правильно перебрать массив, чтобы:
а) показать (добавить в массив результата) только те странны, в которые уже оформлен заказ (массив доступных стран есть)
б) не писать 150 if'ов отдельно для каждого товара и для каждой страны (всего 5 товаров и 30 стран).
  • Вопрос задан
  • 174 просмотра
Пригласить эксперта
Ответы на вопрос 1
kawabanga
@kawabanga
group by country, item_id?

Запрос будет типа:
select country, item_id,count(id) from orders where 1 (ваше условие по выборке) group by country, item_id;

В итоге получится ответ:
кол-во страна1 товар1
кол-во страна2 товар1

и тд... а дальше уже на php выводите как вам необходимо все. При необходимости сразу тут же подставляйте left join для вывода названия товара или названия страны.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы