Baumstrucktur mal anders

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

  • Baumstrucktur mal anders

    hi leute,

    ich habe ein kleines denkproblem.
    irgendwie habe ich keinen plan wie ich das problem realisieren soll.

    die braumstrucktur wie in den Foren bekomme ich schon hin

    eintrag
    |- eintrag 1
    |- eintrag 2
    |- - eintrag 2.1
    |- - eintrag 2.2
    |- - - eintrag 2.2.1
    |- - - eintrag 2.2.2
    zweitrag
    |- zweitrag 1
    |- zweitrag 2

    aber ich möchte das ganz anders darstellen und zwar das alle "kopf" einträäge OBEN nebeneinander stehen und dann die dazugehörigen nach unten angehängt werden (wie ein stammbaum)

    hat einer von euch eine ahnung wie ich das machen könnte?

    Gruß
    Uzu
    Gruß
    Uzu

    private Homepage

  • #2
    Also für die Struktur würde ich Nested Sets empfehlen. Damit kannst du den Baum genau so auslesen wie du es haben willst. Erst alle Nodes (direkt im Root Node) und dann alle zugehörigen Einträge. Oder du liest direkt den ganzen Baum aus und stellst beim Ausgeben in PHP fest welche Elemente Nodes sind und welche die zugehörigen Elemente.
    aber ich möchte das ganz anders darstellen und zwar das alle "kopf" einträäge OBEN nebeneinander stehen und dann die dazugehörigen nach unten angehängt werden (wie ein stammbaum)
    Und das wäre dann nur ein Darstellungsproblem, dass du z.B. mit gefloateten Listen hinkriegen könntest. Hier etwas zum Thema float
    Gruss

    tobi
    Zuletzt geändert von jahlives; 25.03.2008, 12:42.
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Code:
      eintrag                   zweitrag
      |- eintrag 1              |- zweitrag 1
      |- eintrag 2              |- zweitrag 2
      |- - eintrag 2.1      
      |- - eintrag 2.2
      |- - - eintrag 2.2.1
      |- - - eintrag 2.2.2
      Das ist doch nur eine Frage der Darstellung oder? Gruppenwechsel hilft dir da vielleicht weiter.
      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Kommentar


      • #4
        Original geschrieben von tontechniker
        Code:
        eintrag                   zweitrag
        |- eintrag 1              |- zweitrag 1
        |- eintrag 2              |- zweitrag 2
        |- - eintrag 2.1      
        |- - eintrag 2.2
        |- - - eintrag 2.2.1
        |- - - eintrag 2.2.2
        Das ist doch nur eine Frage der Darstellung oder? Gruppenwechsel hilft dir da vielleicht weiter.
        Das habe ich mich eben auch gefragt. Solange die Parent-Child Relationen gegeben sind, hängt es doch ausschließlich von der Darstellung ab, wie du was anzeigst.
        Nieder mit der Camel Case-Konvention

        Kommentar


        • #5
          hi,

          thx für die tipps, dieses nested sets werde ich mir mal angucken.

          für die die sich nicht vorstellen können wie ich es gerne hätte hier eine abbildung:
          http://www.twschwarzer.de/stammbaum.jpg (nur um 180° gedreht .. also auf dem kopf)

          gruß
          Uzu
          Gruß
          Uzu

          private Homepage

          Kommentar


          • #6
            hi leute,

            ich habe mir das mal angeguckt, aber hat mir nicht viel gebracht :-(
            am liebsten wäre es mir wenn ich das mit <div> positionieren könnte, aber ich wüsste nicht wie.

            PHP-Code:
            function getModInfo($id ""$count)
            {
               
            $sql 'SELECT * FROM mod_moderatoren WHERE moderatoren_id='.$id.';';
               
            $result mysql_query($sql);
               
               for (
            $i 0$i $count$i++)
               {
                  
            $abstand .= "&nbsp;&nbsp;&nbsp;";
               }
               
               while (
            $row mysql_fetch_assoc($result))
               {
                  
            $mod .= '
                  '
            .$abstand.'Name:
                  <a href="?show&id='
            .$row['moderatoren_id'].'">
                     '
            .$row['moderatoren_name'].'
                  </a>
                  <br>
                  '
            .$abstand.'Zeit: '.date("d.m.y",$row['moderatoren_time']).'<br>
                  '
            ;
               }
               return 
            $mod;
            }

            function 
            makeModBoard($id "0"$i 0)
            {
               
            $sql 'SELECT * FROM mod_moderatoren WHERE moderatoren_pate = '.$id;
               
            $result mysql_query($sql);

               while (
            $row mysql_fetch_assoc($result))
               {
                  if (
            $id != "0"$i++;

                  
            $modBoard .= getModInfo($row['moderatoren_id'],$i);
                  
            $modBoard .= makeModBoard($row['moderatoren_id'],$i);
               }
               return 
            $modBoard;

            Name: NAME
            Zeit: 28.09.06
            ---Name: NAME
            ---Zeit: 28.09.06
            ------Name: NAME
            ------Zeit: 28.09.06
            Name: NAME
            Zeit: 01.01.70
            ---Name: NAME
            ---Zeit: 01.01.70
            Name: NAME
            Zeit: 01.01.70
            ---Name: NAME
            ---Zeit: 01.01.70
            Name: NAME
            Zeit: 01.01.70
            ---Name: NAME
            ---Zeit: 01.01.70


            Gruß
            Uzu
            Zuletzt geändert von UzumakiNaruto; 31.03.2008, 13:51.
            Gruß
            Uzu

            private Homepage

            Kommentar


            • #7
              am liebsten wäre es mir wenn ich das mit <div> positionieren könnte, aber ich wüsste nicht wie.
              Zum Beispiel mit CSS und Positionieren

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Informier dich bitte noch über Gruppenwechsel.
                Zuletzt geändert von TobiaZ; 29.06.2008, 15:47.

                Kommentar


                • #9
                  Original geschrieben von TobiaZ
                  Informier dich bitte noch über Gruppenwechsel.
                  habe ich mir eben schon kurz angesehen und werde mich damit nachher malgenauer befassen, thx für den tipp ;-)

                  Original geschrieben von TobiaZ

                  Zum Beispiel mit CSS und Positionieren
                  dieses war mir bewusst, mir geht es eher darum wie ich das in PHP umsetze.
                  Sobald ich den Quellcode vor Augen habe ist vorbei.

                  gedankengang ging dahin:

                  query aller "eltern"
                  anzahl der "spalten"
                  ausgabe der "eltern"

                  query aller "kinder" der "eltern"
                  ausgabe der "kinder"
                  query der "kinder" von den "kindern" ("enkel") usw

                  um rekursives programmieren werde ich nicht rumkommen und auch verständlich.
                  aber um die anzeige übersichtlich darzustellen muss ich von ALLEN eltern in EINER ebene die kinder ermitteln und die anzahl der kinder auf der ebene berücksichtigen, es soll ja nichts überdeckt werden.

                  das ich damit das normale browser-fenster sprengen werde ist mir schon klar und nicht wirklich zu vermeiden.

                  UND genau das ist der punkt wo ich leichte probleme habe.

                  gruß
                  uzu
                  Gruß
                  Uzu

                  private Homepage

                  Kommentar


                  • #10
                    um rekursives programmieren werde ich nicht rumkommen und auch verständlich.
                    Bei Nested Sets wohl!

                    das ich damit das normale browser-fenster sprengen werde ist mir schon klar und nicht wirklich zu vermeiden.

                    UND genau das ist der punkt wo ich leichte probleme habe.
                    Tja, entweder Scrollbalken, oder alles verkleiner. Anders wird man DIESES Problem nicht umgehen können.

                    Kommentar


                    • #11
                      um rekursives programmieren werde ich nicht rumkommen und auch verständlich.
                      Wenn du entsprechend abfragst und den Gruppenwechsel (wie schon im dritten Post genannt *grrr*) benutzt brauchst du in den meisten Fällen eigentlich keine rekursiven Querys. Darüber hinaus solltest du auf jeden Fall Nested Sets benutzen, wie TobiaZ richtig vorschlägt, rekursive Querys sind der Performance Killer schlechthin.
                      das ich damit das normale browser-fenster sprengen werde ist mir schon klar und nicht wirklich zu vermeiden.
                      Du könntest immer nur eine bestimmte Anzahl von Bäumen auf einer Linie anzeigen und danach umbrechen.
                      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                      Kommentar

                      Lädt...
                      X