phpbar.de logo

Mailinglisten-Archive

[php] Baumstruktur

[php] Baumstruktur

Andreas Teichrib beezle_(at)_subito.net
Wed, 23 Aug 2000 00:00:36 +0200


hi,
> > Preorder Walk ein spezielles Verfahren?
>
>   Bei der Ausgabe von Bäumen unterscheidet man drei Verfahren:
>
>     - Pre-Order  (Wurzel, Links, Rechts)
>     - In-Order   (Links, Wurzel, Rechts)
>     - Post-Order (Links, Rechts, Wurzel)

also ich habe jetzt eine forum tabelle gemäß der anleitung von
http://www.koehntopp.de/kris/artikel/sql-self-references/ angelegt. hier
der dump (etwas vereinfacht):

CREATE TABLE forum (
   id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
   topic varchar(100) NOT NULL,
   text text NOT NULL,
   nick varchar(50) NOT NULL,
   l smallint(6) DEFAULT '0' NOT NULL,
   r smallint(6) DEFAULT '0' NOT NULL,
   PRIMARY KEY (id),
   UNIQUE id (id)
);

es funktioniert auch alles perfekt, nur kriege ich es nicht gebacken,
dass ich mit einem select query einen thread auswählen kann, den er dann
durchläuft und gleichzeitig das level (also die tiefe) anzeigt.

ich hab folgenden query:

SELECT b.topic,count(*) AS level FROM forum AS a, forum AS b WHERE b.l
BETWEEN a.l AND a.r AND b.r BETWEEN a.l AND a.r GROUP BY b.id;

dieser zeigt das level und alles an was ich will der _ganzen_ tabelle
an, nur wenn ich zb "WHERE ... AND a.id=2" angebe um den 2. subthread
anzuzeigen, kommt logischer weise bei level überall 1, mit having hab
ich auch etwas rumprobiert, bin allerdings auch auf keine lösung
gekommen. hat jemand eine lösung parat?

gute nacht,

mfg andreas teichrib

[: www.beezle.de :]
[: beezle.darktech.org :]
[: root_(at)_beezle.de :]
[: icq_25474508 :]



php::bar PHP Wiki   -   Listenarchive