层级结构,也叫树形结构。在关系型数据库中保存树状结构数据,常用的方法有两种:
邻接表(Adjacency List)
修改过的前序遍历算法(MPTT)
要存储的树状结构数据图如下
表名:Food
1、邻接表
邻接表依赖于pid字段连接上下级。id为自增主键,pid为上一节点的id,例如:Apple的上一节点是Red,所以 Apple pid = Red id
1.1 打印树结构
1 classTree2 {3 private $treeM; //pdo实例
4 private $tname; //表名称
5 private $stmt; //结果集
6 private $res; //结果
7 public function __construct(TreeM $treeM, $tname)8 {9 $this->treeM = $treeM->getTreeM();10 $this->tname = $tname;11 }12 /**13 * 打印树结构14 * @param {Int} $root_id 父节点id,为0则显示整个树结构15 * @param {Int} $level 当前节点所处的层级,用于缩进显示节点16 */
17 public function show_tree($root_id = 0, $level)18 {19 //1. 获取父节点
20 $this->stmt = $this->treeM->query("select id, title from {$this->tname} where pid={$root_id}");21 $this->res = $this->stmt->fetchAll(2);22 foreach ($this->res as $row) {23 //2. 缩进显示
24 echo '
' . $row['title'] . ' ';25 //3. 递归调用当前函数,显示再下一级的子节点26 $this->
本文发布于:2024-02-02 05:45:21,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170682392041749.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |