PHP将主类别移动到子类别下

PHP将主类别移动到子类别下,php,mysql,recursion,Php,Mysql,Recursion,我在MySQL/PHP上使用category tree,它工作正常,但我遇到了一个问题 我的桌子成列/成排 ID parent_id category ---------------------------------- | 1 0 Main Category 1 | 2 0 Main Category 2 | 3 1 Sub Category 1.1 | 4 1 Sub Catego

我在MySQL/PHP上使用category tree,它工作正常,但我遇到了一个问题

我的桌子成列/成排

 ID   parent_id      category
----------------------------------
| 1      0        Main Category 1
| 2      0        Main Category 2
| 3      1        Sub Category 1.1
| 4      1        Sub Category 1.2
| 5      2        Sub Category 2.1
| 6      2        Sub Category 2.2
这种结构可以很好地工作,包括列出、删除和编辑等。但是当用户将一个类别(在自己的子类别下)如主类别1移动到子类别1.2时,类别将消失


更新前如何检查或重新组织?

我认为您也应该更新它的父id,因为我认为它在子类别中是这样看的。但是,请注意将一个类别作为自己的子类别的可能性。您应该检查新的父对象是否是它自己。

这是一个逻辑缺陷。您不应该允许用户修剪树的“根”并将其嫁接到同一根的分支上。事实上,你允许雷击机操作——把树的中间切掉,树枝/树叶神奇地悬在空中。