Forum mit Baumstruktur

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

  • Forum mit Baumstruktur

    Hallo,
    ihr kennt sicherlich alle das Phorum, wenn man dort auf ein Forum geht erhält man eine Art Baumstruktur, etwa wie im Explorer unter Windows, ich hab nun ein eigenes Forum programmiert und möchte gerne auch diese Baumstruktur einbauen, bekomme das aber nicht wirklich hin!
    Hat sich damit schonmal wer beschäftigt und kann mir nützliche Tipps geben?

    Vielen Dank
    Fabian

  • #2
    1) Speichere in jeder Antwort die ID des Eintrags, auf den geantwortet wird. Ist ein Eintrag keine Antwort, bekommt er den "parent" 0.

    2) gib die Einträge rekursiv aus:

    Code:
    function ouput_threaded ($parent, $level)
    {
      $q = mysql_query ("select * from PHORUMTABLE where PARENT=$parent order by DATUM asc");
      while ($x = mysql_fetch_array ($q))
      {
         for ($i=0; $i<$level; $i++) echo '  ';
         echo '+-<a href="showpost.php?id=',$x[ID],'">', "$x[TITLE]</a><br>\n";
         output_threaded ($x[ID], $level+1);
      }
    }
    
    output_threaded (0,0);
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      hi,
      erstmal vielen dank funzt super!
      mein code:

      function output_threaded ($parent, $level)
      {
      global $font,$table;
      global $t_gif,$l_gif,$m_gif,$c_gif,$n_gif,$trans_gif;
      $sql_id = mysql_query ("SELECT * FROM $table WHERE parent='$parent' ORDER BY timestamp asc");
      while ($msg = mysql_fetch_array($sql_id)) {
      echo "<tr><td>$font<table border=0 cellpadding=0 cellspacing=0><tr><td>";
      for ($i=1; $i<$level; $i++) echo "$trans_gif";
      if ($parent != "0") {
      $count++;
      $sql_a = "SELECT count(*) FROM $table WHERE parent='$parent'";
      $sql_id_a = mysql_query($sql_a);
      $ein = mysql_fetch_row($sql_id_a);
      if ($ein[0] == $count) echo "$l_gif";
      else echo "$t_gif";
      } else {
      $count=0;
      }
      $sql_a = "SELECT id FROM $table WHERE parent='$msg[id]'";
      $sql_id_a = mysql_query($sql_a);
      $under = mysql_fetch_row($sql_id_a);
      if ($under[0]) { echo "$m_gif"; }
      elseif (!$under[0] && $parent==0) { echo "$n_gif"; }
      else echo "$c_gif";

      echo "</td><td>$font&nbsp;<a href=\"show.php?id=$msg[0]\">$msg[5]</a></td></tr></table></td><td>$font". $msg[3] ."</td><td>$font". date("d.m.Y H:i",$msg[7]) ."</td></tr>";
      output_threaded ($msg[id], $level+1);
      }
      }

      nur ein problem habe ich noch - das ich aber hoffentlich auch noch gelösst bekomme:
      wenn jemand etwas postet (es wird ja zeitlich angezeigt (also die neuesten zu erst) dann müsste an der seite noch ein strich sein, der aber noch ned da ist *g*

      + Thema
      - RE: Thema
      (|)|- RE: Thema
      - RE: Thema

      das ding was ich eingeklammert habe fehlt noch...


      schönen abend noch
      Fabian


      Kommentar

      Lädt...
      X