mAu
Erfahrenes Mitglied
Hallo liebe Community!
Ich bin immer noch dabei mein Forum zu schreiben und stoße bei den Nested Sets immer wieder auf Probleme... Das erste mal, dass ich mit ihnen arbeite. Ich hab mir jetzt eine Funktion zusammengebaut, die aus sage und schreibe 16 Querys besteht, um Teilbäume zu verschieben... Daher wollte ich ein paar Querys zusammenfügen, stoße dabei aber auf Probleme...
Klappt aber irgentwie nicht. Die lft- und rgt-Werte sind danach immer total beliebig verteilt... Vielleicht könnt ihr ja mal ein Blick drauf werfen... Es entsteht keine Fehlermeldung oder sonstiges... Die Query wird problemlos ausgeführt, nur wie gesagt, die Werte sind danach total wirr...
Ich bin immer noch dabei mein Forum zu schreiben und stoße bei den Nested Sets immer wieder auf Probleme... Das erste mal, dass ich mit ihnen arbeite. Ich hab mir jetzt eine Funktion zusammengebaut, die aus sage und schreibe 16 Querys besteht, um Teilbäume zu verschieben... Daher wollte ich ein paar Querys zusammenfügen, stoße dabei aber auf Probleme...
PHP:
// Restlichen Board-Baum 'reorganisieren', d.h. lft- und rgt-Werte neu anordnen...
$diff = ($rgt - $lft) + 1;
$update = 'UPDATE `wgfx_boards`
SET `lft` = `lft` - ' . $diff . ', `rgt` = `rgt` - ' . $diff . '
WHERE `lft` > ' . $rgt . '
AND `rgt` > ' . $rgt;
$_db->query($update);
$update = 'UPDATE `wgfx_boards`
SET `rgt` = `rgt` - ' . $diff . '
WHERE `rgt` > ' . $rgt . '
AND `lft` < ' . $lft;
$_db->query($update);
// Wollte ich folgendermaßen schreiben:
// Restlichen Board-Baum 'reorganisieren', d.h. lft- und rgt-Werte neu anordnen...
$diff = ($rgt - $lft) + 1;
$update = 'UPDATE `wgfx_boards`
SET `lft` = IF((`lft` > ' . $rgt . '), (`lft` - ' . $diff . '), `lft`),
`rgt` = IF((`lft` > ' . $rgt . '), (`rgt` - ' . $diff . '),
IF((`lft` < ' . $lft . '), (`rgt` - ' . $diff . '), `rgt`))
WHERE `rgt` > ' . $rgt;
$_db->query($update);
Zuletzt bearbeitet: