Heim  >  Artikel  >  Backend-Entwicklung  >  PHP generiert einen Artikelbaum basierend auf Rekursion

PHP generiert einen Artikelbaum basierend auf Rekursion

墨辰丷
墨辰丷Original
2018-06-11 14:34:441404Durchsuche

Beim Schreiben rekursiver Funktionen können Sie das Zwischenspeichern und Definieren einiger statischer Variablen in Betracht ziehen, um die Ergebnisse des vorherigen Laufs zu speichern. Die allgemeinen Schritte sind wie folgt: Rufen Sie zuerst die Daten aus der Datenbank ab. Fügen Sie es in ein Array ein, konvertieren Sie die Daten dann in ein baumförmiges Array und konvertieren Sie dieses baumförmige Array schließlich in HTML-Code. Schauen wir uns unten ein Beispiel an

Da eine meiner technischen Websites hauptsächlich aus Artikeln besteht und einige der Artikel zu einer Reihe gehören, möchte ich diese Artikel klassifizieren und in dieselbe Kategorie einordnen.

Die Datenbank ist nichts anderes als die Verwendung von ID und Vater-ID, die die übergeordnete Kategorie darstellt, und die ID ist die eindeutige ID des Artikels zur Ebene. Es kann zwei Ebenen oder drei Ebenen sein. Eine Vater-ID von 0 gibt einen Artikel der obersten Ebene an.

PHP-Code, hauptsächlich rekursiv

function category_tree($fatherid){
  //require_once("mysql_class/config.inc.php");
  //require_once("mysql_class/Database.class.php");
  $db = new Database(DB_SERVER, DB_USER, DB_PASS, DB_DATABASE);
  $db->connect();
  $sql = "SELECT id,title,url FROM ".TABLE_TASK." 
     WHERE fatherid=$fatherid and ispublic=1 order by id asc";
  $articles = $db->query($sql);
  $db->close();
  while ($record = $db->fetch_array($articles)){
    $i = 0;
    if ($i == 0){
      if($fatherid==0){
        echo &#39;<ul class="article-list-no-style border-bottom">&#39;;
      }else{
        echo &#39;<ul class="article-list-no-style">&#39;;
      }
      
    }
    if($fatherid==0){
      echo &#39;<li><span class="glyphicon glyphicon-log-in" 
      aria-hidden="true" id="han&#39;.$record[&#39;id&#39;].&#39;">
      </span>  <a href="&#39;.$record[&#39;url&#39;].&#39;" target="_blank">&#39; 
      . $record[&#39;title&#39;].&#39;</a>&#39;;
    }else{
      echo &#39;<li><span class="glyphicon glyphicon-chevron-right" aria-hidden="true">
      </span> <a href="&#39;.$record[&#39;url&#39;].&#39;" target="_blank">&#39; 
      . $record[&#39;title&#39;].&#39;</a>&#39;;
    }
    
    category_tree($record[&#39;id&#39;]);
    echo &#39;</li>&#39;;
    $i++;
    if ($i > 0){
      echo &#39;</ul>&#39;;
    }
  }
}

Aufruf:

category_tree(0) //先提取最顶层文章

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, das kann sein hilfreich für alle. Lernen hilft.

Verwandte Empfehlungen:

Die Definition des statischen Schlüsselworts in PHP, späte Bindung und der Unterschied zum Selbstschlüsselwort

So verwenden Sie foreach() in PHP

Eine kurze Einführung in die magischen Methoden, die in PHP bereitgestellt werden

Das obige ist der detaillierte Inhalt vonPHP generiert einen Artikelbaum basierend auf Rekursion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn