PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Baumstruktur Nested Set



RayMatrix
07.11.2003, 11:39
Hi,

das Thema hat zwar nicht direkt mit diesem Forum zu tun, aber womöglich kennt sich ja trotzdem jemand damit aus !?

Die Tabelle:


#----------------------------
# Table structure for mitarbeiter
#----------------------------
drop table if exists mitarbeiter;
create table mitarbeiter (
id int(11) not null auto_increment,
name varchar(24) not null,
umsatz varchar(24) not null,
l int(11) not null default '0',
r int(11) not null default '0',
primary key (id))
type=MyISAM;

#----------------------------
# Records for table mitarbeiter
#----------------------------


insert into mitarbeiter values (1, 'user1', '1000', 1, 24) ;
insert into mitarbeiter values (2, 'user2', '2000', 2, 9) ;
insert into mitarbeiter values (3, 'user3', '3000', 3, 8) ;
insert into mitarbeiter values (4, 'user4', '4000', 4, 5) ;
insert into mitarbeiter values (5, 'user5', '5000', 6, 7) ;
insert into mitarbeiter values (6, 'user6', '6000', 10, 17) ;
insert into mitarbeiter values (7, 'user7', '7000', 11, 16) ;
insert into mitarbeiter values (8, 'user8', '8000', 12, 13) ;
insert into mitarbeiter values (9, 'user9', '9000', 14, 15) ;
insert into mitarbeiter values (10, 'user10', '10000', 18, 23) ;
insert into mitarbeiter values (11, 'user11', '11000', 19, 20) ;
insert into mitarbeiter values (12, 'user12', '12000', 21, 22) ;Die Abfrage:


$query = "SELECT pages1.id AS ID ,
CONCAT( REPEAT('   - ', COUNT(*) ),
pages1.Name,
' (',
pages1.l,
'|',
pages1.r,
')' ) AS Baum

FROM struktur AS pages1,
struktur AS pages2

WHERE pages1.l BETWEEN pages2.l AND pages2.r

GROUP BY pages1.l";Das Ergebnis und die Ansicht dieser Abfrage ist das was ich insgesamt erreichen will, er zeigt mir den kompletten Baum und rückt alles schön, je nach Ebene, ein.

Nun mein Problem. . .selbe Tabelle, nur diesmal soll er mir nur einen bestimmten Ast ausgeben. Erreichen wollte ich das mit folgender Abfrage:


$query = "SELECT pages1.ID AS ID , pages2.ID AS Betreuer,
CONCAT( REPEAT('   - ', COUNT(*) ),
pages1.Name,
' (',
pages1.struktur_l,
'|',
pages1.struktur_r,
')' ) AS Baum

FROM struktur AS pages1,
struktur AS pages2

WHERE pages1.struktur_l BETWEEN pages2.struktur_l AND pages2.struktur_r

AND pages2.ID = 2

GROUP BY pages1.struktur_l";Er zeigt mir nun zwar das Ergebnis aber er rückt leider nicht mehr ein ;(

Hat jemand eine Idee was ich da falsch mache ?

Gruß

RayMatrix
07.11.2003, 14:12
Danke hat sich erledigt ;)