- 首先,按照数据库表的结构设计,创建一个包含id、名称、父类id的表格。
例如:
CREATE TABLE category
(
id
int(11) NOT NULL AUTO_INCREMENT,
name
varchar(255) NOT NULL,
parent_id
int(11) DEFAULT NULL,
PRIMARY KEY (id
)
)
- 从数据库中获取数据,并将其转换为嵌套的数组:
function getCategories($parent = null) {
$result = array();
$sql = "SELECT * FROM category WHERE parent_id " . ($parent ? "= $parent" : "IS NULL");
$query = mysql_query($sql);
while ($row = mysql_fetch_assoc($query)) {
$result[] = array(
'id' => $row['id'],
'name' => $row['name'],
'children' => getCategories($row['id'])
);
}
return $result;
}
- 将数组转换为json格式:
echo json_encode(getCategories());
该方法会返回一个json格式的数据,其父子关系嵌套。例如:
[
{
"id": 1,
"name": "电子产品",
"children": [
{
"id": 2,
"name": "手机",
"children": [
{
"id": 3,
"name": "智能手机",
"children": []
},
{
"id": 4,
"name": "老人机",
"children": []
}
]
},
{
"id": 5,
"name": "电脑",
"children": [
{
"id": 6,
"name": "笔记本电脑",
"children": []
},
{
"id": 7,
"name": "台式电脑",
"children": []
}
]
}
]
}
]