@Bronaz77

Как сделать подсчёт количества товара в категориях и вывод их числа?

Приветствую!
Задача вывести категории в которых содержаться товары производителя и посчитать количество этих товаров в категориях, у нас есть только id производителя
Таблица товаров(goods)
id | name | goods_brandid | proizvoditel_id
---- ----- -------- --------
1 | Диван прямой Белый | 112 | 5
2 | Диван прямой Красный | 112 | 5
3 | Стол зеленый | 34 | 5
4 | Комод белый | 15| 6
--
Таблица категории(brands)
brand_id | brand_name | parent_id
---- ----- -------- --------
1 | Мягкая мебель | 0
112 | Прямые диваны | 1
15 | Угловые диваны | 1
4 | Корпусная мебель | 0
15 | Комоды | 4

НО, нам нужно вывести не подкатегории(Прямые диваны, Комоды) а их родителей(Мягкая мебель, Корпусная мебель)

Sql запрос через который мне удалось вывести подкатегории и посчитать количество товаров содержащихся в них( id производителя - $brands_id)
(SELECT *, (SELECT COUNT(goods_id) FROM goods WHERE goods_brandid = brand_id AND visible = '1' AND proizvoditel_id = '$brands_id') as cnt FROM brands WHERE brand_id IN(SELECT goods_brandid FROM goods WHERE proizvoditel_id = '$brands_id' AND visible = '1') ORDER BY parent_id, brand_name)

Весь код:
function get_productsseller_cat($brands_id){
$query = "(SELECT *, (SELECT COUNT(goods_id) FROM goods WHERE goods_brandid = brand_id AND visible = '1' AND proizvoditel_id = '$brands_id') as cnt FROM brands WHERE brand_id IN(SELECT goods_brandid FROM goods WHERE proizvoditel_id = '$brands_id' AND visible = '1') ORDER BY parent_id, brand_name)
";
                        $res = mysql_query($query) or die(mysql_query());
                        //массив категорий
                        $brand_cat = array();
                        while($row = mysql_fetch_assoc($res)){
          if(!$row['parent_id']){
         $brand_cat[$row['brand_id']][] = $row['brand_name'];
          
         if($row['cnt'] > 0)
           $brand_cat[$row['brand_id']]['cnt'] = $row['cnt'];
         else{
           $brand_id = (int)$row['brand_id'];
           $query2 = "SELECT COUNT(*) FROM goods WHERE goods_brandid IN(SELECT brand_id FROM brands WHERE parent_id = $brand_id)";
           $res2 = mysql_query($query2) or die(mysql_query());
           $row2 = mysql_fetch_array($res2);
           $brand_cat[$row['brand_id']]['cnt'] = $row2[0];
         }
          }else{
                $brand_cat[$row['parent_id']]['sub'][$row['brand_id']][] = $row['brand_name'];
                $brand_cat[$row['parent_id']]['sub'][$row['brand_id']]['cnt'] = $row['cnt'];
          }
   }
                        return $brand_cat;

}


Возможно ли вывести родительские категории без изначально получаемого id подкатегорий?
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы