Всем привет! у меня есть три таблицы: rubric (id_rubric, name, parent_id) attributes (id_attr, type_attr) rubric2attr (id_rubric, id_attr) У категорий есть различные атрибуты, цвет, формат, производитель и т.д. Не могу понять как сгруппировать атрибуты вокруг категории. Код (Text): $query = "SELECT ru.name AS rname, attr.type_attr AS tattr FROM `rubric` ru LEFT JOIN `rubric2attr` ra ON ra.id_rubric = ru.id_rubric LEFT JOIN `attributes` attr ON attr.id_attr = ra.id_attr"; $result = mysql_query($query); while($get_categories = mysql_fetch_array($result)) { printf ($get_categories['rname']." -> Атрибуты: ".$get_categories['tattr']."<br/>"); } получается примерно следующее: Бумага -> Атрибуты: Цвет Бумага -> Атрибуты: Формат Бумага -> Атрибуты: Производитель Стулья -> Атрибуты: Производитель Стулья -> Атрибуты: Материал Подскажите, как можно объединить атрибуты, чтобы полученные данные принимали вид: Бумага -> Атрибуты: Цвет, Формат, Производитель Стулья -> Атрибуты: Производитель, Материал
подсказали такой способ: Код (Text): $query = "SELECT ru.name AS rname, GROUP_CONCAT(attr.type_attr SEPARATOR ',') AS tattr FROM `rubric` ru LEFT JOIN `rubric2attr` ra ON ra.id_rubric = ru.id_rubric LEFT JOIN `attributes` attr ON attr.id_attr = ra.id_attr GROUP BY rname
+------------------+-----------------------------------------+ | rname | tattr | +------------------+-----------------------------------------+ | Бумага | Цвет,Формат,Ширина,Высота,Производитель | | Стулья | Производитель,Материал | +------------------+-----------------------------------------+
while($get_categories = mysql_fetch_array($result)) { printf ($get_categories['rname']." -> Атрибуты: ".$get_categories['tattr']."<br/>"); var_dump($get_categories); }
Код (Text): array(4) { [0]=> string(12) "Бумага" ["rname"]=> string(12) "Бумага" [1]=> string(74) "Цвет,Формат,Ширина,Высота,Производитель" ["tattr"]=> string(74) "Цвет,Формат,Ширина,Высота,Производитель" } array(4) { [0]=> string(12) "Стулья" ["rname"]=> string(12) "Стулья" [1]=> string(43) "Производитель,Материал" ["tattr"]=> string(43) "Производитель,Материал" } вобщем-то на выходе меня все устраивает, вот только не пойму, почему значения в массиве дублируются, за счет чего?