Nested Set - Teilbäume auslesen

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

  • Nested Set - Teilbäume auslesen

    Hallo Board,

    PHP-Code:
    $res =& $db->query("
        SELECT node1.payload,
             COUNT(*) AS level, node1.node_id
        FROM node AS node1,
             node AS node2
        WHERE node1.root_id = 1
        AND   node2.root_id = 1
        AND   node1.lft BETWEEN node2.lft AND node2.rgt
        GROUP BY node1.LFT"
    );

    while(
    $row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
        
    $indent '';
        
        for(
    $i 0$i $row['level']; $i++) {
            
    $indent .= " ";
        }
        
        
    $row['indent'] = $indent
        
    $categories[] = $row;
    }

    echo 
    "<pre>";
    print_r($categories);
    echo 
    "</pre>"
    indent ist ewig leer. Da sollten &nbsp;'s drin sein.
    Sieht jemand warum ?

    [0] => Array
    (
    [payload] => Shop
    [level] => 1
    [node_id] => 1[indent] =>
    Pickel ? Übergewicht ? Depressionen ?
    Brot, Kartoffeln und Milch sind Gift!
    http://www.paleofood.de

  • #2
    Re: [Variablen] Brett vor dem Kopf

    kontrollausgaben innerhalb der schleife ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      PHP-Code:
        $row['indent'] = $indent
      was soll das bewirken?
      mfg
      marc75

      <Platz für anderes>

      Kommentar


      • #4
        Nested Set - Teilbäume auslesen

        Hallo,

        ich habe mit Hilfe dieses Tutorials ein Menü programmiert.

        PHP-Code:
        $res =& $db->query("
            SELECT node1.payload,
                 COUNT(*) AS level, node1.node_id
            FROM nested_set AS node1,
                 nested_set AS node2
            WHERE node1.root_id = 1
            AND   node2.root_id = 1
            AND   node1.lft BETWEEN node2.lft AND node2.rgt
            GROUP BY node1.LFT"
        );

        while(
        $row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
            
        $indent '';
            
            for(
        $i 0$i $row['level']; $i++) {
                
        $indent .= '&nbsp;&nbsp;&nbsp;&nbsp;';
            }
            
            
        $row['indent'] = $indent
            
        $categories[] = $row;

        Wenn ich mir den ganzen Baum ausgeben lasse ist alles schön eingerückt. Wie kann ich aber nun einen Teilbaum auswählen?

        Wenn ich für node2.lft 50 und für node2.rgt 100 eingebe gibt er mir den teilbaum aus, aber dann kann ich mir das Menü nicht mehr eingerückt ausgeben lassen.

        Wer weiß rat?
        Pickel ? Übergewicht ? Depressionen ?
        Brot, Kartoffeln und Milch sind Gift!
        http://www.paleofood.de

        Kommentar


        • #5
          und warum machst du dafür einen neuen Thread auf

          **zusammenführen**

          Kommentar


          • #6
            Hi asp2php,

            ja, du hast recht. Hätte das in diesem Beitrag weiterführen sollen.
            Könntest du mir sagen wie ich den schön eingerückt ausgeben kann?
            Pickel ? Übergewicht ? Depressionen ?
            Brot, Kartoffeln und Milch sind Gift!
            http://www.paleofood.de

            Kommentar


            • #7
              hast du die Frage von marc75 gelesen?

              Kommentar


              • #8
                PHP-Code:
                $row['indent'] = $indent
                bewirkt, dass der String mit den konkatenierten &nbsp;'s zurück in das Array wandert. Dies ist notwendig, da das Array of Arrays zusammen an die Template Smarty übergeben wird.
                Pickel ? Übergewicht ? Depressionen ?
                Brot, Kartoffeln und Milch sind Gift!
                http://www.paleofood.de

                Kommentar


                • #9
                  Das Problem ist folgendes:

                  Ich habe einen Produktkatalog in 5 Sprachen dazu soll die Webseite 5 sprachig sein. Nun gibt es aber nicht in jeder Sprache jede Seite.
                  Außerdem gibt es ein paar Produkte, die in den Produktkatalogen einiger Sprachen nicht erscheinen.

                  Meine Nested Set Tabelle sieht so aus:

                  node_id | root_is| payload lft |rgt

                  node_id: ist der Index
                  root_id: gibt den Baum an
                  payload: Name des Knotens
                  lft: linker Knoten
                  rgt: rechter Knoten

                  Wie kann ich diese Tabelle nun erweitern, so dass man zwischen den Sprachen unterscheiden kann? Muss man für jede Sprache einen eigenen Baum erstellen? Wie unterscheidet man zwischen Kategorie und wirklicher Seite. Das muss ich ja auch irgendwie speichern.
                  Pickel ? Übergewicht ? Depressionen ?
                  Brot, Kartoffeln und Milch sind Gift!
                  http://www.paleofood.de

                  Kommentar


                  • #10
                    Ich würde einfach mal versuchen, je Sprache eine root_id zu verwenden
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar

                    Lädt...
                    X