首先要设计数据库,需要建一个表,里面存储分类信息,至少需要3个字段,第一个是主键(id),第二个是父级分类id(parentid),第三个是分类的名称(classname),可能的一种效果是:
- id parentid classname
- 1 0 一级分类a
- 2 0 一级分类b
- 3 1 二级分类a
- 4 1 二级分类b
主要思路:首先看第三行和第四行,父类id(parentid)的值是1,表示属于id=1这个类的子类,而一,二两行因为是一级分类,没有上级分类,所以父类id(parentid)的值是0,表示初级分类,依次类推便实现了无限级分类,最终的效果是:
级分类a
二级分类a
二级分类b
级分类b
然后就是程序,这里以php教程作为描述语言,可以很方便的改成其他语言,因为原理相似,就是一个递归而已,php实例代码如下:
- <?php
- $dbhost = "localhost";
- $dbuser = "root";
- $dbpd = "123456";
- $dbname = "test";
- mysql_connect($dbhost,$dbuser,$dbpd);
- mysql_select_db($dbname);
- mysql_query("set names 'utf8'");
- display_tree("├",0);
- function display_tree($tag,$classid) {
- $result = mysql_query("
- select *
- from ylmf_class
- where parentid = '" . $classid . "'
- ;"
- );
- while ($row = mysql_fetch_array($result)) {
-
- echo $tag.$row['classname'] . "<br/>";
-
- display_tree($tag."─┴",$row['id']);
- }
- }
- ?>
|