2013-05-18 27 views
0

我正在製作一個傳銷應用程序,我需要將所有用戶顯示爲一棵樹。爲此在用戶之間實現父母子女關係。我的表結構是在這裏: -如何將多維數組鍵作爲樹返回?

enter image description here

我檢索用戶ID的多維數組按照關係。下面是數組: -

enter image description here

爲此,我使用此代碼: -

<?php 
$con = mysql_connect('localhost', 'root', ''); 
mysql_select_db('testapp', $con); 

function create_tree($parent_id = 0) 
{ 
    $result_array = array(); 
    $Query = 'SELECT * FROM `user` WHERE `parent`=\''.$parent_id.'\';'; 
    $query_result = mysql_query($Query); 
    if(mysql_num_rows($query_result)>0) 
    { 
     while($row = mysql_fetch_assoc($query_result)) 
     { 
      if(!array_key_exists($row['user_id'], $result_array)) 
      { 
       //$result_array[$row['user_id']] = $row; 
       $result_array[$row['user_id']] = create_tree($row['user_id']); 
      } 
     } 
    } 
    return $result_array; 
} 
$tree = create_tree(); 
print_r($tree); 

現在,我需要顯示在樹結構等的數據: - enter image description here

任何提示都會有幫助。我非常接近完成這...

+0

提示:使用BST邏輯,與父母和孩子的關係。 –

+0

如果您使用codeigniter,爲什麼不使用db驅動程序? – rcpayan

+0

@rcpayan這項工作是在沒有任何框架的情況下使用PHP完成的。 –

回答

0

是的,你是如此接近..!

試試下面這將是對你的工作..

<?php 
$con = mysql_connect('localhost', 'root', ''); 
mysql_select_db('testapp', $con); 

function create_tree($parent_id = 0 ,$result_array = array()) 
{ 

$Query = 'SELECT * FROM `user` WHERE `parent`=\''.$parent_id.'\';'; 
$query_result = mysql_query($Query); 
if(mysql_num_rows($query_result)>0) 
{ 
    while($row = mysql_fetch_assoc($query_result)) 
    { 
     if(!array_key_exists($row['user_id'], $result_array)) 
     { 
      //$result_array[$row['user_id']] = $row; 
      $result_array[$row['user_id']] = create_tree($row['user_id'],$result_array); 
     } 
    } 
} 
return $result_array; 
} 
$tree = create_tree(); 
print_r($tree); 
?> 

如果這不會爲你工作,不是讓我知道.. !!

謝謝..

+0

對不起Kishan,但它不起作用, –

+0

好的,我將爲此做一個演示並檢查 –

0

嘗試,它應該給你的結構;

function create_tree($parent_id = 0 , $result_array = array()) 
{ 
    //$result_array = array(); 
    $Query = 'SELECT * FROM `user` WHERE `parent`=\''.$parent_id.'\';'; 
    $query_result = mysql_query($Query); 
    if(mysql_num_rows($query_result)>0) 
    { 
     while($row = mysql_fetch_assoc($query_result)) 
     { 
      if(!array_key_exists($row['user_id'], $result_array)) 
      { 
       //$result_array[$row['user_id']] = $row; 
       $result_array[$row['user_id']] = create_tree($row['user_id'], $result_array[$row['user_id']]); 
      } 
     } 
    } 
    return $result_array; 
} 

edit;忘記刪除result_array函數