У меня простой вопрос, но я не знаю, какой термин мне следует использовать, чтобы найти ответ (английский не мой родной язык).
У меня есть классическая база данных продуктов и категорий.
CREATE TABLE IF NOT EXISTS `a` (
`id_a` int(11) NOT NULL auto_increment,
`type` varchar(255) NOT NULL,
PRIMARY KEY (`id_a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
CREATE TABLE IF NOT EXISTS `b` (
`id_b` int(11) NOT NULL,
`id_a` int(11) NOT NULL,
`name` varchar(50) NOT NULL,
PRIMARY KEY (`id_b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Где b.id_a - это внешний ключ для a.id_a
Я хочу получить иерархию всех этих слов, как
ЗНАЧЕНИЕ 1
ЗНАЧЕНИЕ 2
ЗНАЧЕНИЕ 3
- b_value_21
- b_value_22
- b_value_23
Запрос не имеет значения, но я получаю такой ответ:
VALUEOF-TABLE-A | VALUEOF-TABLE-B
A VALUE 1 | b_value_1
A VALUE 1 | b_value_2
и т. Д.
Мой текущий код выглядит примерно так:
$categ = '';
while ($row = mysql_fetch_row ($ressource))
{
if ($row['VALUEOF-TABLE-A']!=$categ)
{
$categ = $row['VALUEOF-TABLE-A'];
echo '<h3>', $categ, '</h3>';
}
echo '<h4>', $row['VALUEOF-TABLE-B'], '</h4>';
}
Но мне не очень нравится идея переменной категории, будь то строка или идентификатор.
Есть ли другой способ получить данные и отобразить их?
В идеале я хотел бы, чтобы объект дерева имел только один узел для идентичных потомков.
Надеюсь, ты понял, чего я хочу.