Re: [請益] 該怎麼設計目錄的資料表呢!?

看板PHP作者 (...)時間12年前 (2013/10/22 00:30), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串6/6 (看更多)
※ 引述《kingoface (桑原)》之銘言: : 類似的東西,代表須要在php中想辦法包html進去... 如果節點陣列都有了,html碼多用幾個巢狀迴圈就可以了。 我來講一下更新。 假設原本是這樣 1A16 ┌──┴────┐ 2B9 10C15 ┌──┼──┐ ┌─┴─┐ 3D4 5E6 7F8 11G12 13H14 要新增一個節點 K 1A18 ┌───┴───┐ 2B11 12C17 ┌──┼──┐ ┌─┴─┐ 3D4 5E8 9F10 13G14 15H166K7 可以看出來: 1. K 的左側號碼往前推,不變。 ( 1 到 5 不變) 2. K 的右側號碼往後推,通通加 2 。 ( 原本 6 以後的數字通通加 2) 第1點因為不變動,可以不管它。第2點又可以歸納成下面新兩點 1. 旁系血親的兩側號碼都加 2,例如 F, G, H, C 2. 直系血親的右側號碼加 2,例如 E, B, A 最後再新增。 SQL: UPDATE menu SET left = left+2, right = right+2 WHERE left > 5; //F, G, H, C UPDATE menu SET right = right+2 WHERE left<=5 AND right > 5; //E, B, A INSERT INTO menu SET node='K', left = 6, right = 7; (5 這個數字可以代換成變數) 不知道是否有更好的寫法? 或許那兩句 UPDATE 可以用 case 或 if 合併成一句? 就算可以,閱讀上應該比較不容易? 效率又會是如何呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.7.114 ※ 編輯: anawak 來自: 61.231.7.114 (10/22 01:20)

10/22 14:28, , 1F
好詳細的介紹,感恩大大分享!
10/22 14:28, 1F
文章代碼(AID): #1IPLQTKw (PHP)
文章代碼(AID): #1IPLQTKw (PHP)