PHP利用遞迴實現無極限分類

2021-07-31 16:24:54 字數 1112 閱讀 6199

所謂的無極限分類就是乙個類可以分成多個子類,然後乙個子類又可以分出另外多個子類。

首先建立乙個資料庫:

create table if not exists `category` (

`id` int(10) unsigned not null auto_increment,

`pid` int(10),

`name` varchar(50),

primary key (`id`)

) engine=innodb default charset=utf8;

pid 表示父類id;

然後插入一些資料:

insert into `category`(`id`,`pid`,`name`) values(1,'0','北京'),(2,'1','豐台區'),(3,'1','朝陽區'),(4,'1','通州區'),(5,'1','大興區'),(6,'1','昌平區'),(7,'1','房山區'),(8,'0','湖南省'),(9,'8','常德市'),(10,'8','長沙市'),(11,'9','武陵區'),(12,'10','雨花區'),(13,'9','石門縣'),(14,'9','鼎城區'),(15,'10','望城縣'),(16,'0','河南省'),(17,'16','高新區'),(18,'16','中原區'),(19,'17','蓮花街')(20,'18','中原大道'),(21,'16','鄭大新區');

通過遞迴的方式實現無極限分類:

<?php

$link=mysql_connect('localhost','root','123456');

if(!$link)

mysql_select_db('test') or die("不能連線資料庫".mysql_error());

$sql="select * from category";

$query=mysql_query($sql);

if($query)

}function gettree($arr,$pid,$step)

}return $tree;

}$newarr=gettree($arr,0,0);

foreach($newarr as $value)

?>

效果如圖:

無極限分類詳解

一 將示例 無極限分類 1.建立示例 注 pid代表上級目錄,level代表目錄深度 header content type text html charset utf 8 arr array array id 1,name 時事新聞 pid 0,level 0 array id 2,name 體育...

無極限分類模組

型別 注釋型別 備註id 分類表自增id intname 分類的名字 varchar pid父級id intpath 分類路徑 varchar level 等級int create table good type id int primary key not null auto increment,...

無極限分類模組

型別 注釋 型別 備註 id 分類表自增id int name 分類的名字 varchar pid 父級id int path 分類路徑 varchar level 等級 int create table good type id int primary key not null auto incr...