2011-04-27 199 views
1

我想知道什麼是使用PHP和MySQL顯示所有類別和子貓和子子類別等邏輯?PHP和MySQL - 如何顯示類別和子類別邏輯

一個簡單的例子將是非常有益的感謝。

這是我的MySQL數據庫結構。

id parent_id category       url            depth 
2 0   Arts & Ent      ?cat=arts-and-entertainment    0 
4 0   Automotive & Trans    ?cat=automotive-and-transportation   0 
6 0   Business & Finance    ?cat=business-and-finance     0 
+0

嗨,首先請詳細描述您的問題..以及要顯示此類別和子類別的位置..?在組合框或其他地方..? – Chandresh 2011-04-27 07:05:24

+0

什麼是組合框 – sony 2011-04-27 07:06:42

+0

組合框是'' – Teneff 2011-04-27 07:11:32

回答

6

查看managing hierarchical data in MySQL查詢以獲取您的類別的示例。儘管如此,你不會在這張平板桌上找到太多的東西,但你必須運行多個查詢來獲得完整的列表,以獲得未知的深度。在我鏈接的文章中有很好的選擇,所以如果可以更改數據庫結構 - 我真的建議你這樣做。

+0

我的表結構不好,究竟是什麼錯誤? – sony 2011-04-27 07:33:46

+0

閱讀我鏈接的文章。這個最簡單的「鄰接列表模型」在它的最上面被描述,並具有其所有的侷限性。我只命名了最大的問題:如果樹深度是動態的,則無法使用單個查詢獲得完整的類別樹。還有其他問題。 – Slava 2011-04-27 07:42:02

2

Storing Hierarchical Data in a Database是我發現在數據庫中存儲分層數據的最有效方式的最佳解釋。

此外,請考慮使用與ORM集成的嵌套集庫,例如Propel。 (請參閱Propel中的NestedSet Behavior。)

+0

我的表格結構不好,究竟是什麼錯誤? – sony 2011-04-27 07:34:19

+0

它與查找的速度有關。當你去寫你的圖書館,打電話像「獲得所有的祖先」和「數祖先」是低效的只有一個父母的ID。我感謝你的問題。我已經實現了這兩種方式。左/右解決方案更容易。 – Homer6 2011-04-27 07:34:44

+0

那麼最好的結構是什麼? – sony 2011-04-27 07:36:19