Ich werds weiter probieren.
Neuer Ansatz, funktuioniert bisher:
LOCK TABLES kategorien WRITE;
UPDATE kategorien SET lft = lft + 2 WHERE lft > #pi_rgt#;
UPDATE kategorien SET rgt = rgt + 2 WHERE rgt >= #pi_rgt#;
INSERT INTO kategorien ( root_id,kat_name,kat_titel,kat_link,kat_position,kat_not_kat,kat_frei,lft,rgt) VALUES ( #c_root_id#, '#form.kat_name#','#form.kat_titel#','#form.kat_link#','#form.kat_position#','#form.kat_not_kat#','#form.kat_frei#', #c_lft#, #c_rgt#);
UNLOCK TABLES;
Die Berechnung der Variablen nehme ich mittels ColdFusion vor:
<!--- Daten ermitteln --->
<cfquery datasource="#dbs#" name="getData">
SELECT * FROM kategorien WHERE node_id = #form.node_id#
</cfquery>
<!--- Parent ist-Variablen --->
<cfset pi_node_id = getData.node_id>
<cfset pi_root_id = getData.root_id>
<cfset pi_lft = getData.lft>
<cfset pi_rgt = getData.rgt>
<!--- Child Variablen --->
<cfset c_root_id = pi_root_id>
<cfset c_lft = pi_rgt>
<cfset c_rgt = pi_rgt + 1>
(denke daß kann man auch lesen wenn man noch nie zuvor mit ColdFusion zu tun hatte :))
so long
Ole
(8-)>
--
Stickstoff eignet sich nicht für Handarbeiten.
Stickstoff eignet sich nicht für Handarbeiten.