Ole: Nächster Ansatz

Beitrag lesen

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.