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 '<ul class="article-list-no-style border-bottom">'; }else{ echo '<ul class="article-list-no-style">'; } } if($fatherid==0){ echo '<li><span class="glyphicon glyphicon-log-in" aria-hidden="true" id="han'.$record['id'].'"> </span> <a href="'.$record['url'].'" target="_blank">' . $record['title'].'</a>'; }else{ echo '<li><span class="glyphicon glyphicon-chevron-right" aria-hidden="true"> </span> <a href="'.$record['url'].'" target="_blank">' . $record['title'].'</a>'; } category_tree($record['id']); echo '</li>'; $i++; if ($i > 0){ echo '</ul>'; } } }
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:
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!