我有一個表格,有3列id,name and parent_id
表示類別。根類別(沒有父母的類別)具有parent_id 0.所有其他類別都具有parent_id作爲其直接父級的標識。對類別的深度沒有限制,我的意思是一個類別可以從根類別下降3,4甚至10個級別。我現在需要的是一個PHP多維數組,它包含第一級的所有根類別,然後包含其下一級的直接子類別,其父類別下的每個子類別及其下的子類別1降級。所以它的一個tree like structure.
可以在樹上有很多級別在php中查詢分層mysql表
我不需要確切的代碼,但需要一個想法。一個這樣的想法是通過選擇查詢獲取所有根類別,然後針對每個根查詢啓動選擇查詢以獲得其子類別等等,但是這會是太多的選擇查詢。
或者如果我知道,我的表將包含發言權最大300行,我怎麼能這樣做
$categories=GetResultAsArray(select * from categories);
,現在在內存中操作$類別陣列以獲得所需的樹。
我認爲你的想法都很好,並且都受到你擁有的數據行數量的限制。性能考慮多少?考慮緩存結果樹?你也可以通過對每個查詢進行一次自加入來減少sql查詢的數量 - 也就是說,讓所有父母和他們的孩子深入一個級別。 – Aerik 2011-12-15 17:47:36
你需要每次都得到完整的樹嗎? – andho 2011-12-16 14:50:47