我正在爲客戶創建一個問卷,要求通過3層關卡來組織問題。我已經成功創建了U.I.然而,我一直試圖在最後3個小時從數據庫中提取數據,以便將所有內容加載到正確的位置。該數據庫由客戶舉辦像這樣,所以我有沒有對其進行控制:使用遞歸組織mySQL數據PHP
id description parentId about
1 Level 1 0 This is the top level or in my case tab1
2 Level 2 0 This is the next tab in the top level
3 Level 1a 1 This is the first category under tab1
4 Level 1b 1 This is the next category under tab1
5 Level 1a1 3 This is the content under the first category of tab1
所以爲0的parentId的東西是頂級水平,將包含第二個層次的東西用的1等的parentId的上。令人困惑的是,我幾乎無法理解這一點,但這是我被告知要這樣做的方式。
什麼方法是執行這樣的事情的最好方法?我用作參考的另一個問題的示例附在下面(儘管不起作用)
foreach (mysql_query("SELECT * FROM pB_test ORDER BY id ASC") as $row) {
$menuitem = array_merge(array(), $row);
$menuLookup[$menuitem['id']] = $menuitem;
if ($menuitem['parent'] == null) {
$menuitem['path'] = "/" . $menuitem['name'];
$menu[] = $menuitem[];
} else {
$parent = $menuLookup[$menuitem['parent']];
$menuitem['path'] = $parent['path'] . "/" . $menuitem['name'];
$parent['menu'][] = $menuitem;
}
}
任何幫助將不勝感激。乾杯
對不起,如果這是一個無知的問題。但是,我將如何組織這個在PHP? –
biziclop的想法很好。你有三個層次。使用查詢獲取所有記錄,然後在其上運行循環,檢查'parentId'並將其分配給數組。我認爲沒有別的辦法。那麼,有 - 使用查詢獲得最高級別的記錄,然後循環,併爲每個頂級記錄找到它的孩子,然後爲每個孩子你需要一個查詢來找到它的孩子,等等。 – Pateman
問題是我有無法控制數據庫。所以一切都必須通過PHP我的身邊完成。我已經做了一些尋找和遞歸php樹遍歷似乎是做到這一點的方式。沒有任何工作通過o.o –