> 백엔드 개발 > PHP 튜토리얼 > 无限级分类问题

无限级分类问题

WBOY
풀어 주다: 2016-06-06 20:47:14
원래의
1085명이 탐색했습니다.

无限级分类问题

无限级分类 我现在知道最底部节点 也就是知道无限级分类问题

用一个方法找出所有的父节点!谢谢

回复内容:

无限级分类问题

无限级分类 我现在知道最底部节点 也就是知道无限级分类问题

用一个方法找出所有的父节点!谢谢

  1. 如果你问的是如何用一句 SQL 语句来找出所有的父节点的话,join 可能可以实现,但是不建议用数据库实现。一是尽量减小粒度(虽然实践表明绝大多数的减小粒度都是无用功),使其便于修改;二是这样会给数据库造成较大压力,使流程处理时间大幅增加,数据库不擅长逻辑处理,更擅长简单的取。

  2. 如果你问的是如何在一个方法中取出,高级语言有一个普遍的语法特性,叫 递归,说白了就是自己调用自己。
    我们来构思一下实现方式(php语言为例):

<code class="lang-php">$father = "";

public function get_all_father($son_of_son) {

    global $father;
    if (找他爹($son_of_son)) {

        $他爹 = 找他爹($son_of_son);
        $father = $father.'.'.$他爹; //以 . 隔开一层一层的father
        get_all_father($他爹);
    }

    return $father.'.'.$son_of_son;
}

public function 找他爹($儿子) {

    if (在数据库里找到($儿子)的爹了) {
        return 他爹;
    } else {
        return FALSE;
    }
}

//特别声明,除了那一句 “在数据库里找到($儿子)的爹了” 和 “return 他爹;” 是我简写了以外,其他代码都是可以运行的,没错,汉字也行,以utf-8编码保存就行。
</code>
로그인 후 복사

这只是一个思路,离实际能在symfony里运行的代码还有很大差距。当然这是在两个function里实现的,你可以把下面那个function缩成一行放在上面的里面......

按存储结构不同,这个要看你的表格结构,不能靠猜的。

常见的有,链表式的必须递归回溯,左右值式的所有超集并按左值排序。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿