Mailinglisten-Archive |
> -----Original Message-----
> From: php-admin_(at)_phpcenter.de [mailto:php-admin_(at)_phpcenter.de]On Behalf Of
> Manuel Trunk
> Sent: Wednesday, March 21, 2001 4:29 PM
> To: php_(at)_phpcenter.de
> Subject: [php] Re: [php] OT?: Designrätsel
>
>
> Hallo Juri,
Hi Manuel,
>
> Das Auslesen klappt wunderbar, aber wenn ich etwas einfügen möchte,
> verabschiedet sich MySQL ziemlich heftig. Hier das SQL Statement:
>
> "Lock tables Personnel write;
> Update Personnel set r=r+2 where r+0>=:oldr;
> Update Personnel set l=l+2, r=r+2 where l+0 between :oldl+1 and :oldr;
> Insert Into Personnel (emp, salary, l, r) values ('Manuel', '100', 20,
> 2);
> Unlock tables;"
Ist auch verstandlich, der hat Probleme mit :oldr und :oldl
> Ehrlich gesagt reichen meine SQL Kenntnisse (was heißt :oldl) auch nicht
> aus, um das zu verstehen, ich weiß, RTMF, aber wo (genau)?
> Vielleicht hast du ja eine Funktion, die mir einen Mitarbeiter, sagen wir
> unter Jerry anlegt, und dabei die left-right-Felder richtig setzt? Wenn du
> dann auch noch eine Funktion hast die den Mitarbeiter wieder
> löscht, bin ich
> glücklich :-)
Hee ;-), ich hatte mit diesem Baum ein paar Stunden experementiert (und
auch einige Funktionen geschrieben, frag mich aber nich wo sie jetzt sind
;-))
Zum Implementieren bin ich noch nicht gekommen.
Trotzdem:
Was die :wasauchimmer bedeuten, sieht man u.A. im LöschVorgang. Das sind
Variablen die z.B. von PHP aus gesetzt werden.
LOCK TABLES Personnel WRITE;
SELECT emp AS oldemp, l AS oldl, r AS oldr FROM Personnel WHERE
emp=:downsized;
DELETE FROM Personnel WHERE emp = :downsized;
UPDATE Personnel SET l = l-1, r = r-1 WHERE l BETWEEN oldl AND oldr;
UPDATE Personnel SET l = l-2, r = r-2 WHERE l > oldr;
UNLOCK TABLES;
Hier ist :downsized Leaf(Knoten)Name , was deleted wird. Z.B. "Chuck".
function DelNode($NodeName)
{
...
$strSQL="DELETE FROM Personnel WHERE emp = '$NodeName'";
...
}
Beim Einfuegen, bin ich mir nicht sicher (zum Nachdenken keine Zeit ;-)
deswegen einfach ausprobieren ),
sind oldl und oldr die jeweilige Parameter vom VaterNode, wo Dein neuer Leaf
angehaengt wird.
Gruss,
Juri
php::bar PHP Wiki - Listenarchive