Baumausgabe mit Nested Sets

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

  • Baumausgabe mit Nested Sets

    Hallo zusammen,

    ich habe mir das Tut zu den Nested-Sets angesehen und kann das auch auf der Datenbankseite soweit umsetzen. Eine einfache Ausgabe in PHP bekomme ich auch hin - nun möchte ich aber gerne auch Einrückungen - entsprechend der jeweiligen Ebene anzeigen. Dazu würde ich gerne eine Liste mit den Tags <ol> und <li> verwenden.

    Allerdings habe ich keine Ahnung wo ich anfangen soll ?! Woran erkenne ich wann eine neue Unterliste beginnt und wann eine geschlossen werden muss ... usw.

    Kann mir bitte jemand der soetwas schon einmal gemacht hat einen Denkanstoss geben, damit ich weiß wo und wie ich anfangen soll.

    Vielen Dank und Gruß
    Patrick

  • #2
    Ich mache das mit den Nested Set immer so:

    Abweichend von der "reinen Lehre" speichere ich zu jedem Knoten auch noch den level ab, auf dem er steht und die Gruppen_id (id des Vaters).

    Dann wird die Ausgabe in eine Baumstruktur, sprich die sql-Abfragen, wesentlich einfacher.

    Ich hoffe, das ist der Denkanstoß, den du gebraucht hast ;-)
    Zuletzt geändert von berthold; 28.08.2004, 12:14.
    Kostenlose Werbung für Ihre Website

    Kommentar


    • #3
      Danke für den Beitrag - hat mich aber nicht wirklich weiter gebracht ...

      wie gesagt: die Ausgabe ist kein Problem. Ich kann sowohl den ganzen Baum, als auch einzelnen Teile aus der Datenbank abfragen. Es geht mir lediglich darum mit PHP eine HTML-Ausgabe zu generieren die mit den Tags <ul> und <li> eine Baumstruktur darstellt.

      Ganz im speziellen habe ich schon beim Ansatz Schwierigkeiten wenn ich einen Eintrag der 5. Ebene ausgeben und als nächstes ein Beitrag 2. Ebene kommt. Dann müssen drei Listen abgeschlossen und eine neue geöffnet werden ... usw.

      Mein Problem ist die Umsetzung der HTML-Ausgabe.

      Noch jemand mit einem guten Rat ?!

      Kommentar


      • #4
        mach es doch ohne HTML-Liste.
        z.B. mit einem transparenten gif, welches zu in entsprechender Anzahl des Level für den Knotenpunkt setzt.
        Wäre das nicht eine Lösung?

        Also konkret eine HTML-Liste mit Tabellen und Bildern simmulieren.
        Kostenlose Werbung für Ihre Website

        Kommentar


        • #5
          wofür braucht man überhaupt solche bäume ?
          thx Mukraker

          Kommentar


          • #6
            zum einen um eine Menüstruktur auf einer HTML-Seite darzustellen.
            Oder auch eine Dateiliste.
            Oder die Beiträge in einem Forum.

            Wenn du mal ein bißchen über den Bildschirm guckst, werden dir, gerade im Bereich Computer und Internet, eine Menge Baumstrukturen auffallen.
            Kostenlose Werbung für Ihre Website

            Kommentar


            • #7
              Original geschrieben von berthold
              Ich mache das mit den Nested Set immer so:

              Abweichend von der "reinen Lehre" speichere ich zu jedem Knoten auch noch den level ab, auf dem er steht und die Gruppen_id (id des Vaters).

              Dann wird die Ausgabe in eine Baumstruktur, sprich die sql-Abfragen, wesentlich einfacher.

              Ich hoffe, das ist der Denkanstoß, den du gebraucht hast ;-)
              Ähm ... dann brauchst du kein Nested Sets, denn das was du machst ist einfach gesagt ... unfug.

              Entweder mach nimmt Nested Sets oder man arbeitet mit id, parentid aber beides zusammen ...

              Kommentar


              • #8
                Moin,

                nachdem ich das Wochenende über weiter gesucht und probiert habe bin ich noch nicht weiter. Wie erstelle jetzt eine Ausgabe mit einer Baumstruktur?! Viele Foren und Mailinglisten verwenden doch auch so eine Ausgabe ...

                Alles was ich gefunden habe war in meinen mySQL-Buch das Beispiel zu einem Forum. Da wurden allerdings auch die Ebene mit jedem Datensatz gespeichert und dann einfach für jede Ebene einmal '&nbsp;' ausgegeben - das finde ich aber nicht besonders professionell.

                Also, wer mir einen guten Tipp geben kann wie ich die Ausgabe hinbekomme, nur zu!

                Vielen Dank!

                Kommentar


                • #9
                  normalerweise visualisiert man Einrückungen mit transparentem GIF. Es hat dadurch den Vorteil, dass man keine exisiterenden Tags abschliessen muss und auch keine neue einleiten muss. Vielleich sollst du dein Konzept nochmals überdenken

                  Kommentar


                  • #10
                    tja, das mit den gifs hört sich eigentlich nicht viel besser an als dar einrücken mit geschützten Leerzeichen ...

                    Erstmal Danke für die Hinweise.

                    Kommentar


                    • #11
                      Hallo Patrick_PQ,

                      ich habe das nur überflogen und evtl. falsch verstanden, aber wenn Dir bei der Ausgabe die Ebene bekannt ist, könnte man es auch mit einfachen DIV-Tags machen:

                      PHP-Code:
                      $Text="foo, bar";
                      $level=2
                      $indent=($level 5)+10// Bsp.
                      echo "<div style=\"padding-left:".$indent."px;\">".$Text."</DIV>"
                      so sollte das Verschachtelungsproblem entfallen.
                      nice day
                      Quickborner

                      Kommentar


                      • #12
                        @Quickborner: Danke auch an dich.

                        Kommentar

                        Lädt...
                        X