我有一个简单的问题,但我不知道应该用哪个术语来找到答案(英语不是我的第一语言)。产品分类
我有一个古典的数据库设计的产品类和类。
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
- b_value_1
- b_value_2
的值2
- b_value_11
- b_value_12
的值3
- b_value_21
- b_value_22
- b_value_23
请求没有问题,但我得到这种anwser的:
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>';
}
但我不喜欢太多的CATEG变量的想法,是一个字符串或ID。 有没有其他的方式来获取数据并显示它们?
理想情况下,我喜欢树对象,只有一个节点用于相同的子节点。
希望你明白我想要什么。
你是对的,关键是id_b,但我在我的帖子中交换了表格顺序,并忘记了这一点。 该请求是隐式连接:它是一种从table_a a,table_b b中选择a.name,b.type其中a.id_a = b.id_a – Aif 2009-08-20 12:44:13
我添加了一个小脚本,我没有测试它,但是结构应该是正确的。 – 2009-08-20 21:28:22
是的,谢谢,这是我说的第二个解决方案(事实上它似乎我没有),但我的目标是执行这种事情,而无需对每个类别进行查询。 – Aif 2009-08-27 11:42:59