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