Приветствую!
Задача вывести категории в которых содержаться товары производителя и посчитать количество этих товаров в категориях, у нас есть только 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 подкатегорий?