Move node in nested set

后端 未结 13 977
孤街浪徒
孤街浪徒 2020-12-07 15:06

I\'d need a MySQL query that moves a node and all its children within a nested set. I found this site, but that function just seems so illogical - there\'s no universe

13条回答
  •  轮回少年
    2020-12-07 15:40

    $row is an array that represents the row I have to move; it must be like this:

    Array ( [lft] => 5 [rgt] => 10 [width] => 6 ) 
    

    $row2 is an array that represents the destiny node;

    Array ( [id] => 5 [lft] => 2 [rgt] => 17 [width] => 16 ) 
    

    ...

    mysql_query("UPDATE entryCategory SET rgt = rgt + %d - %d, lft = lft + %d - %d WHERE rgt <= %d and lft >= %d;",$row2["rgt"],$row["lft"],$row2["rgt"],$row["lft"],$row["rgt"],$row["lft"]);
    mysql_query("UPDATE entryCategory SET rgt = rgt + %d WHERE id=%d;",$row["width"],$row2["id"]);
    mysql_query("UPDATE entryCategory SET rgt = rgt - %d, lft = lft - %d  WHERE rgt > %d and lft > %d;",$row["width"],$row["width"],$row["rgt"],$row["rgt"]);
    

提交回复
热议问题