Alle Unterkategorien eines Forums finden

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

  • Alle Unterkategorien eines Forums finden

    Wir hatten sowas ähnliches schon mal, ich weiß. Aber ich kann mit den gezeigten Code-Beispielen nichts anfangen.
    Das Problem: Ich habe eine Tabelle, die alle meine Foren aufnimmt. Folgende Struktur:
    Code:
    CREATE TABLE ph_forums (
      forumid tinyint(4) NOT NULL auto_increment,
      name varchar(200) NOT NULL default '',
      description varchar(200) default NULL,
      lastpost int(10) default NULL,
      lastposter int(5) unsigned default NULL,
      parent int(4) unsigned default '0',
      catid tinyint(4) NOT NULL default '0',
      path varchar(20) default '0',
      PRIMARY KEY  (forumid)
    ) TYPE=MyISAM;
    Die Spalte parent gibt an welche ID das übergeordnete Forum hat. Wie kann ich es nun realisieren, dass ich einen Select-Tag mit den Foren "füllen" kann. Ich hab' schon alle möglichen Sachen durchprobiert, komm aber einfach nicht hin.
    "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

  • #2
    ist doch nicht so schwer ...

    mysql_query("select * from ph_forums where parent=$parent");

    Wenn du´s rekursiv haben willst, dann musst du iterieren:
    PHP-Code:
    $cat = array();
    $next = array($parent);
    for (
    $level=$i=0$i<count($next); $i++)
    {
      
    $q mysql_query("select * from ph_forums where parent=$parent");
      while (
    $x mysql_fetch_assoc($q))
      {
        
    $next[] = $x['forumid'];
        
    $x['level'] = $level;
        
    $cat[] = $x;
      }

    Um die Unterkategorien zu einer Kategorie direkt hinter der parent-Kat zu listen, muss was rekursives her:
    PHP-Code:
    function getsubs($parent$level 0)
    {
      global 
    $cat;
      
    $q mysql_query("select * from ph_forums where parent=$parent");
      while (
    $x mysql_fetch_assoc($q))
      {
        
    $x['level'] = $level;
        
    $cat[] = $x;
        
    getsubs($x['forumid'], $level+1);
      }
    }
    $cat[] = array();
    getsubs($parent); 
    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
      Whoa, Gott wandelt auf Erden und "arbeitet" für die php-resource. Danke Titus.
      (Ich dachte schon mein Beitrag wird komplett übersehen)
      "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

      Kommentar

      Lädt...
      X