phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?RE:_=5Bphp=5D_Re:_=5Bphp=5D_OT=3F:_Designr=E4tsel?=

[php] RE: [php] Re: [php] OT?: Designrätsel

Juri.Smarschevski php_(at)_phpcenter.de
Wed, 21 Mar 2001 17:03:37 +0100


> -----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