Impressum  |   RSS  |  Forum

tsql

Mit PHP eine Baumstruktur erzeugen.

PHP Baumstruktur rekursiv erzeugen.

Dieser Tipp zeigt wie hierarchische Datensätze mit einer SQL-Abfrage selektiert und mit einer rekursiven Funktion geordnet ausgegeben werden können.

  1. vater
    1. sohn
      1. enkel
        1. urenkel
      2. sohn
      3. mutter
        1. tochter
          1. tochter
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          17
          18
          19
          20
          21
          22
          23
          24
          25
          26
          27
          28
          29
          30
          31
          32
          33
          34
          35
          36
          
          <?php 
          //  Datenbankverbindung aufbauen
          mysql_connect('localhost','root'); 
           
          //  Datenbank selektieren
          mysql_select_db('test');
           
          //  Query gegen die Datenbank feuern
          $resource = mysql_query('select * from kategorie'); 
           
          /*  Das Ergebnis der Query in das $kategorie Array schreiben.  
          Die Datensatz ID wird als Array Key genutzt.*/
          $kategorie = array();
          while($row = mysql_fetch_assoc($resource)){
            $kategorie[$row['id']] = $row;
          } 
           
          //  Die Funktion zum erzeugen der Baumstruktur aufrufen.
          gib_baumstruktur($kategorie); 
           
          //  Die Funktion gib_baumstruktur ruft sich rekursiv auf 
          und gibt die Baumstruktur als ul Liste aus.*/
           
          function gib_baumstruktur($kategorie,$parent_id=null){
            echo '<ul>';
            foreach($kategorie as $key=&gt;$value){
              if($value['parent_id']===$parent_id){
                echo '<li>',
                $value['name'];
                gib_baumstruktur($kategorie,$value['id']);
                echo '</li>';
              }
            }
            echo '</ul>';
          } 
          ?>

          Tags: , , , , , , , , , , ,