2010-08-14 29 views
0

我一直在尋找一秒鐘,並看到有關顯示類別的問題,並想知道如何顯示我的父類別的所有子類別,例如我的鏈接如下?如何檢索給定類別的子類別

我正在使用PHP & MySQL - 預先感謝!

這是我的鏈接。

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 rewrite來讓url看起來像這樣。

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

你正在尋找一個遞歸查詢或只是一個級別? – 2010-08-14 22:54:32

+0

@Mark Byers如果你的意思是顯示所有的類別,然後遞歸的子類別。不只是一個類別及其子類別。 – 2010-08-14 22:57:16

+0

是的,這就是我的意思遞歸。 – 2010-08-14 23:03:11

回答

2

MySQL還不支持遞歸查詢,所以你不能真正做你所要求的而沒有很多努力。

我建議你看看比爾卡爾文的幻燈片Models for heirarchical data其他存儲數據的方法(例如:嵌套集合,封閉表)。幻燈片48比較了不同設計的優缺點。 '查詢子樹'對你來說特別有意思,你正在使用的鄰接列表模型是這類查詢最難寫的。

+0

即使我必須添加另一個表格,如何做到這一點的例子也會非常有用。 – 2010-08-14 23:04:21

+0

那麼創建我需要的代碼的最佳方式是什麼? – 2010-08-14 23:30:03

+0

那麼你如何建議我的MySQL表或表結構應該看起來像? – 2010-08-14 23:48:32