[SQL allgemein] nestedset mit mysql: sondergelagerter Spezialfall ...

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

  • [SQL allgemein] nestedset mit mysql: sondergelagerter Spezialfall ...

    Hallo,

    ich habe ein nested-Set-Modell (läuft soweit) und möchte nun einen Teilbereich darstellen. Zusätzlich benötige ich den Level/die Ebene um Einrückungen vorzunehmen.

    Folgende SQL-Syntax liefert den Teilbaum, aber Level ist jeweils 1:
    PHP-Code:
    SELECT t1.bezcountt2.id ) AS 
    LEVEL 
    FROM tree 
    AS t1tree AS t2
    WHERE t1
    .lft
    BETWEEN t2
    .lft AND t2.rgt AND t2.lft =27
    GROUP BY t1
    .bez 
    Die Einschränkung auf den Teilbaum erfolgt mit "AND t2.lft=27". Lasse ich diesen Teil weg bekomme ich díe Spalte Level für die Einrückung korrekt, aber den ganzen Baum ...

    Ich bastel da jetzt schon ne Weile dran rum - vielleich kann sich das mal einer von euch anschauen und mir auf die Sprünge helfen?!

    Besten Dank!

  • #2
    http://php-resource.de/forum/showthr...604#post268635
    mfg,
    [color=#0080c0]Coragon[/color]

    Kommentar


    • #3
      vielen Dank, das hat mir schon weiter geholfen.

      Allerdings steckt ja bekanntlich in jedem kleinen Problem ien viel größeres, das gerne raus möchte ...

      Hier nun eine Zusatzfrage:

      Wenn ich jetzt mit der Syntax von asp2php im o.g. Link meine Ausgabe eines Teilbaums realisiere erhalte ich z.B. folgendes:
      Bezeichnung, Level
      A111,4
      A1111,5
      A1112,5
      A1113,5
      A112,4
      A113,4

      Es wäre doch nun schön, wenn auch beim Teilbaum der Level mit 1 beginnt - nicht wahr? Theoretisch könnte ich ja nun einfach von jedem leven "select min(level)-1 ..." abziehen. Aber vielleicht geht es auch eleganter ?!

      Kommentar


      • #4
        Ähm verstehe grad nicht warum. Du stellst nur den Teilbaum dar, oder doch komplett aber nur den betreffenden Teil aufgeklappt? Wenn ja, dann ist doch schön, weil mit dem Level du die Einrückungen steuern kannst. Oder habe ich dich komplett falsch verstanden.

        Kommentar


        • #5
          @asp2php: ich hole aus einem riesen Baum den oben abgebildeten Teilbaum. Im Teilbaum beginnt die Einrückung bei 4 - ich hätte aber gerne eine Einrückung ab 1. Der Teilbaum soll also wie ein kompletter Baum aussehen.

          Ich rücke in einer Tabelle über padding-left ein. Wenn ich nun den Teilbaum darstelle wird - in obigem Beispiel - der erste Treffer gleich weit eingerück, weil level 4 im Teilbaum. Da es sich aber um den Beginn (level 1 des Teilbaums) handelt soll keine Einrückung erfolgen. Der nächste Level (=5) ist dann für meine Teilbaumanzeige logischerweise level 2 usw.

          Ich hoffe du kannst nachvollziehen was ich möchte ... nicht nur, dass ich es nicht alleine schaffe, ich kannst nicht mal so beschreiben das andere mich verstehen *verzweifel*

          Kommentar


          • #6
            der erste eintrag ist doch das kleinste level, das du hast oder?

            dann mach doch sowas
            PHP-Code:
            $abzug $level_von_erstem_eintrag 1
            und bei der ausgabe gibst du
            PHP-Code:
            ($level_im_eintrag $abzug
            aus
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              @mrhappiness: Danke, das tut ja schon fast weh - da hätte ich wirklich selber drauf kommen können ...
              Zuletzt geändert von Patrick_PQ; 06.10.2004, 08:08.

              Kommentar


              • #8
                Original geschrieben von Patrick_PQ
                @mrhappiness: Danke, das tut ja schon fast weh - da hätte ich wirklich selber druaf kommen können ...
                nur fast
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar

                Lädt...
                X