如何检索给定类别的子类别

时间:2010-08-14 22:53:09

标签: php mysql

我一直在环顾四周,一直看到有关显示类别的问题,并想知道如何显示我父类别的所有子类别,例如下面的链接?

我正在使用PHP& MySQL -Thanks提前!

这是我的链接。

http://www.example.com/categories/index.php?main_category=web-development&sub_1=programming&sub_2=html&sub_3=basics&sub_4=forms&sub_5=select-tag

这是我的MySQL代码。

CREATE TABLE categories ( 
id INT UNSIGNED NOT NULL AUTO_INCREMENT, 
parent_id INT UNSIGNED NOT NULL DEFAULT 0, 
category TEXT NOT NULL, 
PRIMARY KEY (id), 
INDEX parent (parent_id)
);

我知道我可以使用mod重写来使网址看起来像这样。

http://www.example.com/categories/main-category/sub-1/sub-2/sub-3/sub-4/sub-5/

1 个答案:

答案 0 :(得分:2)

MySQL还不支持递归查询,所以如果不付出太多努力,你就无法真正做到所要求的。

我建议您查看Bill Karwin的幻灯片Models for heirarchical data以了解存储数据的其他方法(示例:嵌套集,闭包表)。幻灯片48比较了不同设计的优缺点。 “查询子树”对您来说特别有趣,您正在使用的邻接列表模型是最难编写此类查询的模型。