【发布时间】:2015-01-27 20:22:46
【问题描述】:
我想用 jquery 插件 Fancytree 显示一个数据结构。在 Google 中进行长时间搜索后,似乎将数据结构存储在数据库中的最佳方式是嵌套集模型(在 Stackoverflow 上描述为 php / Mysql best tree structure)。但是制作这种结构的相关嵌套JSON来显示是相当困难的,我做不到..
这包括转换以下 MySQL 表:
|类别 ID |姓名 |半边天 | rgt |深度 |
| 1 |电子产品 | 1 | 20 | 0 |
| 2 |电视 | 2 | 9 | 1 |
| 3 |管 | 3 | 4 | 2 |
| 4 |液晶显示器 | 5 | 6 | 2 |
| 5 |等离子 | 7 | 8 | 2 |
| 6 |便携式电子产品 | 10 | 19 | 1 |
| 7 | MP3 播放器 | 11 | 14 | 2 |
| 8 |闪存 | 12 | 13 | 3 |
| 9 | CD 播放器 | 15 | 16 | 2 |
| 10 | 2 路收音机 | 17 | 18 | 2 |
进入这个 JSON:
[{"key": "1", "title": "ELECTRONICS", "expanded": true, "children": [
{"key": "2", "title": "TELEVISION", "expanded": true, "children": [
{"key": "3", "title": "TUBE"},
{"key": "4", "title": "LCD"},
{"key": "5", "title": "PLASMA"}
]},
{"key": "6", "title": "PORTABLE ELECTRONICS", "expanded": true, "children": [
{"key": "7", "title": "MP3 PLAYERS", "expanded": true, "children": [{"key": "8", "title": "FLASH"}]},
{"key": "9", "title": "CD PLAYERS"},
{"key": "10", "title": "2 WAY RADIOS"}
]}
]}]
我想知道是否存在将 MySQL 数据转换为分层嵌套 JSON 的简单方法? 谢谢!
【问题讨论】:
-
请看
http://www.techrecite.com/how-to-create-json-using-data-from-mysql-database/ -
感谢您的评论,但这不是我需要的。我需要将 MySQl 表转换为一个结构化的 JSON,它代表我的结构的各个分支和叶子。 JSON 应该是多级的,如下所示 [ {title: "Node 1", key: "1"}, {title: "Folder 2", key: "2", folder: true, children: [ {title : "Node 2.1", key: "3", myOwnAttr: "abc"}, {title: "Node 2.2", key: "4"} ]} ],
-
您的示例预期输出 json 应该是什么??
-
你在使用任何框架吗?也许 CakePHP 的 Tree 可以帮助转换它。 book.cakephp.org/2.0/en/core-libraries/behaviors/tree.html - 另见此链接 - bakery.cakephp.org/articles/Kynigos/2009/06/12/…
-
非常感谢您的回答,虽然我没有使用任何 PHP 框架(PHP 主要用于数据库交互),但这看起来很棒。
标签: php mysql json fancytree nested-set-model