2012-10-12 4 views
1

php와 mysql을 사용하여 트리에서 노드 수를 계산하는 방법. 우리가 하위 노드를 셀 수있는 방법PHP를 사용하여 노드 수를 계산하는 방법

## id ## parent ## child ## 
    0  0   A 
    1  0   B 
    2  0   C 
    3  2   D 
    4  1   E 
    5  1   F 
    6  2   G 
    7  3   H 
    8  5   I 
    9  5   J 
    10  5   L 
    11  5   M 
    12  1   N 
    13  0   O 
    14  0   P 
     A 
    / \ 
    B  C  
/\ /\ 
E F D G 

조건 A -이 2 카운트 A가 새로운 트리를 만들로 이동 마무리하는 경우 1 세대 2 단지 (B, C)

같은

A 
/\ 
O P 

나는 어떻게 조건을 제공합니다.

+0

아마도 귀하는 귀하의 조건을 다시 말해야합니다. 나는 당신의 상태가 새로운 나무를 창조하는 것이 무엇인지 정말로 모른다. – cypherabe

+0

왜냐하면 6 개의 서브 노트를 계산해야하기 때문에 2는 1 세대이고 4는 2 세대입니다. 노드 수를 계산하는 것이 가능합니다. – user1740287

+0

이 링크를 철저히 읽으십시오 .... 이것은 데이터베이스 테이블 구조를 변경해야하지만 도움이 될 수 있습니다. http://www.sitepoint.com/hierarchical-data-database/ –

답변

0

재귀 세계에 오신 것을 환영합니다. MySQL에서는 쉬운 일이 아니므로 PHP를 사용하여이 작업을 가장 잘 수행 할 수 있다고 생각합니다. 효과적으로 모든 트리를 걸어,

function countNodes($rootNode) 
{ 
    $result = 1; // The rootnode itself. 

    // Query children of $rootnode. 
    // I leave this to you. 

    foreach($subNode in $children) 
    $result += countNodes($subNodes); 

    return $result; 
} 

이 기능이 각 노드에서 발견 한 아이들의 각각에 대해 자신을 호출 유지 참조 : 예를 들어,이 같은 함수를 만듭니다.

+0

안녕 GolezTrol, 답장을 보내 주셔서 감사합니다. 당신의 지시를 따르십시오. 감사, – user1740287

관련 문제