2012-06-06 78 views
0

時許,需要創建一個使用根ID二叉樹使用PHP和MySQL創建5個孩子,並從註冊會員

它工作在USER_1註冊自己這樣 兒孫一個項目25個孫子,他(用戶_1)也登記2,3,4,5,6並且具有總共(最多)5個子 user_2寄存器7,8,9,10,11 user_3寄存器12,13,14,15,16等等 等等on

ON user_1的個人資料一張樹狀圖表列出了他的子女和他的子女, 他從各自的孫輩的註冊孩子也顯示出來。

        1 
---------------------------------------------------------------------- 
    |     |     |    |    | 
    2    3     4    5    6 
---------------  --------------- --------------- ------------ -------------- 
| | | | |  | | | | | | | | | | | | | | | | | | | | 
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31       

的USER_ID的不一定是爲了,但只是一個例子 然後也,USER 1將看到總的子孫,他有 兒童= 5的最大,孫子= 20 == (25)

我創建了這樣的

id | name | password | totalfamily | grandparent | parent_id 
--------------------------------------------------------------- 

表我想表要保持這樣的信息下面

id | name | password | totalfamily | grandparent | parent_id 
1  jon  ******     NULL   NULL 
2  mel  ******     NULL   1 
3  al  ******     NULL   1 
4  me  ******     1    3 

如果需要新的表結構來使其工作,那也可以。

我已經做了登記(包括檢查的PARENT_ID和grandparent_id)的程序和

記錄,但我進退兩難關於如何查詢數據庫,幫我列出像一個樹狀結構的名字展現孩子和孫子

我知道這需要複雜的查詢語句來執行

我解決這個(希望這不會破壞規則),因爲我已經花了幾天時間閱讀分層數據的迫切需要爲我的Mysql + PHP構建教程,但看起來不容易我的方向。

幫助任何人? 在此先感謝。

回答

1

我剛剛創建表ID,名稱PARENT_ID

+----+--------+-----------+ 
| id | name | parent_id | 
+----+--------+-----------+ 
| 1 | one |  NULL | 
| 2 | two |   1 | 
| 3 | three |   1 | 
| 4 | four |   2 | 
| 5 | five |   2 | 
| 6 | six |   2 | 
| 7 | seven |   2 | 
| 8 | eight |   3 | 
| 9 | nine |   3 | 
| 10 | ten |   3 | 
| 11 | eleven |   3 | 
+----+--------+-----------+ 

,當用戶1想要獲得所有的孩子。查詢會喜歡這個

select * from users where parent_id in(select id from users where parent_id = 1) or parent_id = 1; 

我認爲它可以幫助你

+0

這對於讓特定父母的孩子很有用 – Normal9ja

0
+----+--------+-----------+------------+ 
| id | name | parent_id |grandparentID 
+----+--------+-----------+------------+ 
| 1 | one |  NULL |  NULL | 
| 2 | two |   1 |  NULL | 
| 3 | three |   1 |  1  | 
| 4 | four |   2 |  1  | 
| 5 | five |   2 |  2  | 
| 6 | six |   2 |  2  | 
| 7 | seven |   2 |  2  | 
| 8 | eight |   3 |  3  | 
| 9 | nine |   3 |  2  | 
| 10 | ten |   3 |  1  | 
| 11 | eleven |   3 |  2  | 
+-------------+-----------+------------+ 

這就是我分解它是。

而在列出孩子的頁面中,這是我如何得到它的。

     Normal_codes 
          | 
    ---newman ---ukwangwa ---hello ---azonto 

使用如下代碼

 function display_tree() { 
$result = $this->qry("SELECT * FROM users WHERE Parent='?' or Parent ='?';" , 
'in(select id from user_id from users where Parent = "'.$_SESSION['id'].'")', $_SESSION['id']); 
     //select * from users where parent_id in(select id from users where parent_id = 1) or parent_id = 1; 

     echo '<div align="center">'.$_SESSION['name'].'<br></div>'; 
     echo '<div align="center">|</div>'; 
      echo '<div align="center">'; 
      while($row=mysql_fetch_assoc($result)){ 
       echo "\n\r---".$row['name']; 
       $result1 = $this->qry("SELECT * FROM users WHERE grandParent='?' or grandParent ='?';" , 
'in(select user_id from users where grandParent = "'.$_SESSION['id'].'")', $_SESSION['id']); 
      while($row1 =mysql_fetch_assoc($result1)){ 
       //echo "<br>--".$row1['name']; 
      } 
      }; 
      echo '</div>'; 

    } 

人有一個想法,以任何HTML,使用Javascript/jQuery代碼,可以幫助我列出兒孫出以樹的形式。

       Normal_codes 
            | 
     ---newman ---  ukwangwa  --- hello  --- azonto 
      |    |    |    | 
    n1 n2 n3 n4 n5 n1 n2 n3 n4 n5 h1 h2 h3 h4 h4 a1 a2 a3 a4 a5 

爲由每個五個家長

任何PHP代碼,以幫助我在查詢的登記孩子的姓名縮寫也可以理解。