nested sets und parent...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • nested sets und parent...

    hi,
    nutze zZ diese Abfrage um meine Navigation sotiert abzufragen. Nun muss ich aber an einer stelle auch die "parent" Navigation haben...
    Kann ich die Abfrage da noch irgendwie mit einbauen? meine versuche scheitern immer...

    Code:
    		SELECT
    			`node1`.`navigation`,
    			`node1`.`con_kat`,
    			`node1`.`name`,
    			COUNT(*) `level`,
    			`node2`.`con_kat` `child_of`,
    			floor((`node1`.`rgt` - `node1`.`lft`) / 2) `children`
    		FROM
    			`categories` `node1`,
    			`categories` `node2`
    		WHERE
    			`node1`.`notvisible` = '0' AND
    			`node1`.`lft` BETWEEN `node2`.`lft` AND `node2`.`rgt`		
    		GROUP BY
    			`navigation`,
    			`node1`.`lft`,
    			`node1`.`rgt`
    danke euch ;-)

  • #2
    Ok, vielleicht habe ich mich etwas schlecht ausgedrückt, was ich suche...

    Mit der oben genannten Abfrage speichere ich alle Blätter des Baumes in der richtigen Reihenfolge in einem array.

    Da ich diese Abfrage nun für eine Navigation nutze (ist auch eigentlich egal), stoße ich nun auf folgendes Problem (beispiel): Ich weiß, dass ich in der 3. ebene bin, und kenne meine aktuelle con_kat. Nun würde ich aber auch gerne wissen, wer das nächst höhere blatt, also das aus der 2. ebene ist.
    Im Moment mache ich das mit einer seperaten abfrage :

    Code:
    // Vater bestimmen
    $s = con_sql("
    			SELECT
    				`node2`.`con_kat`
    			FROM
    				`categories` `node1`,
    				`categories` `node2`
    			WHERE
    				`node1`.`con_kat` = '".$con_kat."' AND
    AND
    				`node1`.`notvisible` = '0' AND
    				`node2`.`lft` < `node1`.`lft` AND 
    				`node2`.`rgt` > `node1`.`rgt`		
    			ORDER BY
    				`node2`.`rgt`
    			LIMIT 1");
    der nachteil daran ist natürlich, dass ich für jedes blatt wieder eine abfrage starten muss.
    Kann man diese beiden statement somit nicht also irgendwie kombinieren?

    Kommentar


    • #3
      Ich weis jetzt zwar nicht genau auf was du hinausswillst, aber das sieht mir ein bisschen dannach aus, als wolltest du so ein Aufklapp Menü Javascript Menu bauen wie hier: milonic.com (ganz oben), falls du das machen willst, dann nimm die Dom Klasse um Das Menu zu formatieren. Dann brauchst du nur eine Query. Und brauchst auch kein Zwischenarray.
      daniel-portal.com/games Free Games and more

      Kommentar


      • #4
        hi, danke für deine antwort...

        nein, die um ausgabe an sich geht es mir gar nicht.

        Man stelle sich einfach mal diesen Baum vor. Da jeder dieser Blätter einen Link darstellt, welcher durch eine id namens con_kat charakterisiert wird, kann ja nun auch der Fall auftreten, dass ich die Seite aufrufe, nur die con_kat weiß, und mich in einem unteren Level bewege, also nicht in der ersten ebene.
        Damit ich nun aber nicht jedes untermenü ausgeben will, sondern nur das eine, aber nur die con_kat weiß, ist es von nöten festzustellen, welches Blatt der Vater dieses Blattes ist, auf dem ich mich gerade befinde.
        Und damit ich diese Abfrage nicht jedesmal ausführen muss, würde ich gerne im array einen einen key namens "parent" anlegen, in der sofort der Vater bekannt ist. Wenn kein Vater existiert, man sich also in der 1. ebene befindet, ist parent = null. sonst nennt parent die übergeordnete con_kat.

        Kommentar

        Lädt...
        X