Because one of my technical sites is mainly articles, and some of the articles are in a series, so I want to classify these articles into the same Classes are under one.
The database is well designed, just use id and fatherid to classify. fatherid represents the parent category and is the id of the article, and id is the unique id of the article. The level is not limited, it can be two levels or three levels. A fatherid of 0 indicates a top-level article.
php code, mainly recursive
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>'; } } }
Call:
category_tree(0) //先提取最顶层文章
The above is the entire content of this article, I hope you all like it.