php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.06.2011, 18:59  
Erfahrener Benutzer
 
Registriert seit: 09.05.2005
Beiträge: 561
BartTheDevil89 kann nur auf Besserung hoffen
Standard [Erledigt] Nested-Set auf Teilknoten beschränken?

Hallo,

arbeite hier an einem Nested-Set, was auch soweit super funktioniert. Hab folgenden Aufbau beispielsweise:

Haupt1 (ID 1)
Haupt2 (ID 2)
- Unter 1 (ID 9)
- Unter 2 (ID 10)
Haupt3 (ID 3)
- Unter 1 (ID 4)
- Unter 2 (ID 5)
-- UnterUnter 1 (ID 7)
- Unter 3 (ID 6)
Haupt4 (ID

Mit folgender Abfrage bekomm ich alle Ergebnisse nach Ebenen:

PHP-Code:
        $result $db->query("SELECT group2.*,
                                             COUNT(*) AS level
                                      FROM kategorie AS group1,
                                           kategorie AS group2
                                      WHERE group2.lft BETWEEN group1.lft AND group1.rgt
                                      GROUP BY group2.lft;"
);
        while(
$eintrag mysql_fetch_array($result)){
            echo 
"$eintrag[level]. Ebene $eintrag[name]<br />";
        } 
Aber jetzt die Frage: Wie grenze ich dei Abfrage ein, sodass ich nur einen Teilknoten bekomme? Also beispielsweise nur folgendes:

- Unter 1 (ID 4)
- Unter 2 (ID 5)
-- UnterUnter 1 (ID 7)
- Unter 3 (ID 6)

Also alles unter ID 3.
Oder:

- Unter 1 (ID 9)
- Unter 2 (ID 10)

Also alles unter ID 2.

Danke für die Hilfe...
BartTheDevil89 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.06.2011, 21:23  
Erfahrener Benutzer
 
Registriert seit: 19.06.2009
Beiträge: 837
PHP-Kenntnisse:
Fortgeschritten
Jens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nett
Standard

Indem Du nur die group2-Werte berücksichtigst, deren lft- und rgt-Werte zwischen den lft- und rgt-Werten des Knotens mit der ID 3 liegen.

Gruß Jens
P.S.: @mods: schiebt mal bitte wer? Danke.
Jens Clasen ist offline   Mit Zitat antworten
Alt 13.06.2011, 21:24  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Bitte Forenstruktur beachten!

[MOD: verschoben]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.06.2011, 23:01  
Erfahrener Benutzer
 
Registriert seit: 09.05.2005
Beiträge: 561
BartTheDevil89 kann nur auf Besserung hoffen
Standard

Zitat:
Zitat von Jens Clasen Beitrag anzeigen
Indem Du nur die group2-Werte berücksichtigst, deren lft- und rgt-Werte zwischen den lft- und rgt-Werten des Knotens mit der ID 3 liegen.

Gruß Jens
P.S.: @mods: schiebt mal bitte wer? Danke.
Danke fürs Verschieben...

Hab jetzt in der SQL noch folgendes drin:

"AND group2.lft BETWEEN 7 AND 14 AND group2.rgt BETWEEN 7 AND 14"

Bekomme jetzt folgendes, wenn ich auf ID 3 filtere:

Haupt3 (ID 3)
- Unter 1 (ID 4)
- Unter 2 (ID 5)
-- UnterUnter 1 (ID 7)
- Unter 3 (ID 6)

Problem ist, dass aber der Hauptknoten nicht mehr drin sein sollte:

Unter 1 (ID 4)
Unter 2 (ID 5)
- UnterUnter 1 (ID 7)
Unter 3 (ID 6)

Mein Versuch war jetzt einfach aus 7 ne 8 und aus 14 ne 13 zu machen, aber dann verlegt er mir das leider komplett.
Oder was mache ich falsch?

Danke
BartTheDevil89 ist offline   Mit Zitat antworten
Alt 13.06.2011, 23:04  
Erfahrener Benutzer
 
Registriert seit: 19.06.2009
Beiträge: 837
PHP-Kenntnisse:
Fortgeschritten
Jens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nett
Standard

Bitte Hirn anschalten! Zwischen heißt nicht zwingend Between (respektive >= und <=). Es kann auch > und < heißen.

Gruß Jens
Jens Clasen ist offline   Mit Zitat antworten
Alt 14.06.2011, 08:39  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.140
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Anmk:
Das BETWEEN von MySQL ist aber auch etwas gemein, auch wenns so in der Doku steht ... :

Das BETWEEN bei mysql bedeutet ja >= und <=
Laut Duden bedeutet "(da)zwischen" aber > von und < bis.
Das andere wäre von bis, das schliesst das "von" und "bis" ein, also wieder das >= und <=


LG
__________________
Keine Zahl != ein Zeichen das keine Zahl ist

Geändert von hausl (14.06.2011 um 10:39 Uhr).
hausl ist offline   Mit Zitat antworten
Alt 14.06.2011, 13:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

„Nenn mir einen Zahl zwischen 1 und 5“
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 14.06.2011, 14:39  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.140
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Online-Duden, recht haste! (aber ich hatte das wo gelesen mal .. is schon zu lange her.. das Alter, ja ja....)

Zitat:
kennzeichnet einen bestimmten Wert als [untere] Grenze einer bestimmten Spanne

Grammatik
mit Dativ

Beispiele
•Temperaturen zwischen 8 und 12 Grad
•der Preis liegt zwischen 80 und 100 Euro
LG
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Nested Set - Prüfen, ob ein Pfad existiert Geryon Datenbanken 2 17.01.2011 14:13
parent -> nested set coola Datenbanken 11 11.12.2010 15:17
[Erledigt] nested sets coola Datenbanken 6 04.12.2010 17:20
Nested Set nur teilweise ausklappen BartTheDevil89 PHP Tipps 2010 3 10.11.2010 12:59
Nested Sets in PHP verarbeiten Squall PHP Tipps 2010 4 06.05.2010 12:24
Nested Sets - multiple Zuordnung alsahmut Datenbanken 16 26.04.2010 11:00
Nested Sets Norber Datenbanken 7 09.01.2010 22:32
Nested Sets und viele Fragen... BartTheDevil89 Datenbanken 7 13.08.2008 10:18
PHP skript auf einen Thread beschränken. notyyy PHP-Fortgeschrittene 11 13.06.2008 14:10
nested set dbmodell subtrees verschieben raffnix Datenbanken 12 08.06.2008 13:27
Nested Sets oder Rekursion? litterauspirna PHP Tipps 2008 8 06.06.2008 16:57
Nested Sets in ein Mehrdimensionales Array Simon9990 PHP-Fortgeschrittene 2 29.10.2007 17:38
menü, nested set oder ähnliches? Promaetheus PHP Tipps 2007 13 15.02.2007 22:37
Nested Sets und Silbings nightfreak Datenbanken 10 06.01.2006 13:58
NESTED SETS dieses Thema sollte abgehakt werden PHP Tipps 2004 0 12.10.2004 18:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
forenstruktur nested sets

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:05 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum