phpbar.de logo

Mailinglisten-Archive

Fwd: Detailsfrage Nested Sets

Fwd: Detailsfrage Nested Sets

gerd gerd at roo.de
Die Jul 15 16:47:07 CEST 2003


Am Freitag, 27.06.03, um 21:38 Uhr (Europe/Berlin) schrieb Andreas 
Ahlenstorf:
> Desktops & Server
> Notebooks & PDAs
> Monitore
> Drucker
> + Lexmark
> + Hewlett Packard
> + Zubehör Lexmark
> ...
>
> Leider bin ich schon bei der Aufstellung für den korrekten
> Wertebereich gescheitert und war entsprechend gar nicht erst in der
> Lage, eine SQL-Query zu gestalten.
>
> Hat jemand eine passende SQL-Query, die er/sie einfach hinklatschen
> könnte, oder ein paar sachdienliche Hinweise?

Hallo Andreas, (hier nochmal für die Liste, beachte die kleinen 
Änderungen)

ich hab nix Fertiges, bin kein Profi und ich bin feige. Feige bin ich, 
weil ich gegen die reine Lehre zwei zusätzlich Spalten mitführe: 
g.level (Schachtelungstiefe und g.groupid (id des nächsten 
übergeordneten "Ordner"). Das macht viele Queries wesentlich einfacher 
und besser verständlich. Beide Werte werden automatisch bei Änderungen 
neu erzeugt.
Meine Query sieht dann so aus:

  SELECT g.id,g.groupid,g.name,g.level
  	FROM	csstruct as g, csstruct as e
			WHERE	e.id = $aktuelleSeite 			
				AND
				(	( e.l>=g.l AND e.l<g.r AND e.r>g.l AND e.r<=g.r ) # alle Ordner  
nach oben bis zur Root
				OR
					( e.groupid = g.groupid AND e.level = g.level )   # Seiten im 
gleichen Ordner/Level
				OR	g.groupid= $aktuelleSeite       # die Seite selbst
				OR 	g.level = 2			       # der Haupt- Navigationslevel
				)
			ORDER by g.l

wobei l == lft und r==rgt und die Tabelle "csstruct" ist.

Das Ergebnis/Verhalten kannst Du Dir auf www.ebertplatz.de oben links 
in der Navigation ansehen.

Gruß Gerd

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive