Manfred: Forumfrage / hilfe gesucht

guten tag,
also, mich beschäftigt schon seit ein paar tagen nur noch eine sache. und zwar programmiere ich z.zt. ein forum. dafür habe ich 2 tabellen angelegt - eine in der die themen stehen, und eine, in der die einträge aufgenommen werden. die unten stehenden tabelle zeigt die eintrags_tabelle mit einer ganz normalen auto_increment_id, den titel des beitrages, der referenz_id 't_id', die auf die thema_id aus der themen_tabelle zurückgreift, und schließlich die f_id, welche sich auf die id der selben tabelle bezieht - sprich, mit welchem beitrag auf welchen beitrag geantwortet wurde.

+----+--------------------------+------+------+
| id | titel                    | t_id | f_id |
+----+--------------------------+------+------+
|  2 | Re:Übungsflüge |    1 |    1 |
|  3 | Re:Übungsflüge |    1 |    2 |
|  4 | Re:Übungsflüge |    1 |    1 |
| 18 | Re:Übungsflüge |    1 |    3 |
| 19 | Re:Übungsflüge |    1 |    2 |
| 20 | Re:Übungsflüge |    1 |    1 |
| 21 | Re:Übungsflüge |    1 |   20 |
| 22 | Re:Übungsflüge |    1 |   21 |
| 23 | Re:Übungsflüge |    1 |    2 |
| 24 | Aha                      |    1 |   22 |
| 26 | Kurz                     |    1 |   22 |
+----+--------------------------+------+------+
11 rows in set (0.01 sec)

das ganze prog funktioniert bisweilen eigentlich meinen vorstellungen entsprechend. bis auf bei der umsetzung der darstellung mangelt es bei mir noch an kenntnisse oder erfahrung (wie man es auch nennen mag). denn folgende (typische forums-)darstellung möchte ich gerne erreichen:
---------------------------
Thema
|_ RE: Thema
|_ RE: Thema
   |_ RE: RE: Thema
      |_ RE: RE: RE: Thema
   |_ RE: RE: Thema
|_ RE: Thema
   |_ RE: Thema
---------------------------

und solch eine auflistung bekomme ich nicht hin. denn ich kann mir einfach nicht ausmalen, wie ich das handhaben muss. hole ich mir jetzt z.b. das erste "RE: Thema(1)". suche dann, ob in der tabelle irgendwo eine "f_id" mit der ID (von "RE: Thema(1)") exisitiert. wenn  ja, dann heisst das ja, dass es noch eine ebene weiter geht. doch ab da hört es bei mir auf. denn wie kann ich eine abfrage formulieren, die dann quasi ab da die ganzen einträge bis in die letzte ebene hin durchsucht und ggfs. darstellt.
---
ich weiß jetzt nicht, ob das nun unverschämt von mir ist, so viel hier rein zu schreiben bzw. euch so etwas zuzumuten. der, der dies denkt sollte einfach nicht antworten. wer mir jedoch gerne helfen möchte, über den würde ich mich sehr freuen, denn wie schon gesagt, ab hier komm ioch nicht weiter!!!

mfg
Manfred

  1. Moin Moin !

    Wenn Du Hilfe suchst, mach Dir wenigstens so viel Mühe, Deine Frage lesbar zu schreiben, sprich: Gelegentlich mal ein paar Großbuchstaben an passender Stelle einzufügen. Das erhöht die Wahrscheinlichkeit, daß jemand Lust hat, Dir zu helfen und senkt die Wahrscheinlichkeit, daß jemand Lust hat, Dich anzunörgeln.

    Wenn Du im "Real Life" Hilfe suchst, stellst Du Dich ja auch nicht nuschelnd in eine stille Ecke und wartest auf Antworten. Oder ?

    Alexander

    1. Entschuldigung. Das habe ich mir mit der Zeit angewöhnt. Habe leider nicht daran gedacht, wie andere darauf reagieren könnten, da es für mich schon normal ist. Werde dieses beim nächsten mal auf jeden Fall einhalten. Hoffe, dass ich trotzdem ein paar Hilfen oder Denkanstöße bekomme...
      mfg
      Manfred

      1. Tach

        Entschuldigung. Das habe ich mir mit der Zeit angewöhnt. Habe leider nicht daran gedacht, wie andere darauf reagieren könnten, da es für mich schon normal ist. Werde dieses beim nächsten mal auf jeden Fall einhalten.

        Halb so wild.
        Du verwendest wenigstens noch deutsche Wörter und verwendest Satzzeichen ;-)
        Das ist nicht überall so :)

        Ciao,

        Harry

  2. Tach

    +----+--------------------------+------+------+
    | id | titel                    | t_id | f_id |
    +----+--------------------------+------+------+

    Also: ID ist die id der Postings, f_id die des vorhergehenden. Sagen wir mal, Du kennzeichnest alle Ausgangspostings mit f_id=0.

    Thema
    |_ RE: Thema
    |_ RE: Thema
       |_ RE: RE: Thema
          |_ RE: RE: RE: Thema
       |_ RE: RE: Thema
    |_ RE: Thema
       |_ RE: Thema

    Dann kommt eine rekursive Funktion zum Einsatz:

    function recu($parent_id, $dimension=0)
    {
     #-> Datenbankabfrage: Alle Postings mit f_id=$parent_id
     while($bla = mysql_fetch_array($res))
     {
      #-> Alle Ergebnisse in einer Schleife durchgehn
      echo str_repeat(" ", $dimension*3).TITEL_DES_BEITRAGS."<br />";

    #-> Rekrusiver Aufruf:
        recu(ID_DES_BEITRAGS, $dimension+1);
     }
    }

    Die Funktion wird dann aufgerufen:

    recu(0);

    Damit werden Dir alle Threads komplett als Baum angezeigt. Für einzelne Threads mußt Du die ID des Ausgangspostings übergeben. Paß aber auf, das Ausgangsposting wird dann nicht mit angezeigt.

    Du solltest Dich einfach mal mit dem Thema "Rekursivität" beschäftigen.

    Ciao,

    Harry

    1. Danke Harry,
      ich konnte zwar bis jetzt nich nicht alles ganz nachvollziehen, aber gut dass du mir das mit der Rekursivität erzählt hast. Habe dieses vorher noch nie in Gebrauch genommen. Werde es also jetzt erstmal ausprobieren und ggbf. nochmal posten sollte ich nun nicht von alleine das problem lösen können...
      thanx a lot
      mfg
      Manfred

      1. Danke Harry,
        ich konnte zwar bis jetzt nich nicht alles ganz nachvollziehen, aber gut dass du mir das mit der Rekursivität erzählt hast. Habe dieses vorher noch nie in Gebrauch genommen. Werde es also jetzt erstmal ausprobieren und ggbf. nochmal posten sollte ich nun nicht von alleine das problem lösen können...

        http://www.bw.fh-deggendorf.de/bachelor/lehre/cpp/f14/gliederung.htm
        http://mete.virtualave.net/vis/recursion.html

        gruss

    2. BLENDEND UND PERFEKT
      --------------------
      nochmals besten Dank Harry, hätte mir nicht vorstellen können, dass das einer mal 'so eben' lösen könnte. Weiter so ;-)
      mfg
      Manfred