2016-10-07 67 views
0

这些是数据,因为它们在MySQL表科瑞树状阵列或子阵列

表A(任务)

task_id | name | description 
----------------------------- 
    1  | soccer| fora 
----------------------------- 
    2  | sussam| forb 
----------------------------- 
    3  | sosssi| forc 
----------------------------- 
    4  | sillly| ford 

于此项目表格乙里程碑

mile_id | name | task_id 
------------------ 
    1  | task1mi | 1 
------------------ 
    2  | task2mi | 1 
------------------- 
    3  | task3mi | 3 

我期待使一个treeview数组,类似于每个任务的父类里程碑,作为任务ID的子数组。

什么的print_r()函数将返回(和PHP所需的输出MySQL查询后)

array(   
      name=>'soccer', 
      description =>'fora' 
      task_id=>array(
        mile_id=>'1', 
        name=>'task1mi'     
      ) 
     ) 

任何建议

+0

这是否一个纯粹的阵列或MySQL表? – hassan

+0

从MySQL返回使用PHP,即时通讯寻找从MySQL结果建立一个数组树 – Alphy

+0

为什么你不使用连接或子查询,而不是返回一个数组,然后将它们转换为另一个视图! – hassan

回答

0

你可以做下面的方式,但它是不好的表现。我不知道确切的要求和你使用的镂空。所以我给出了基本的想法。

$sqlparent = "select * from tasks";// get your task details from database. 
$parentData = $sqlparent;// result from sql function. 
foreach($parentData as $key=>$value) 
{ 
    $sql = "select * from Milestones where task_id='".$value['task_id']."'";// find the Milestones of the task 
$milestonesResult = mysql_featch_array($sql); // run sql and get data from database it is giving you single record you need to create loop here. as i don`t know what are you using for PHP. 
$value['milestoneslist'] = $milestonesResult; //task_id=>array(here you can not use task_id => array as it is already there. if you do it it will over-right the task_id 
} 

我希望你能从中得到启发。

0

您可以使用下面的代码为您的解决方案,因为我以为

$sql = "select table_b.*,table_a.name as aname, table_a.description as description as aname from table_b left join table_a on table_b.task_id=table_a.task_id" 
$result = mysql_query($sql); 

//based on above query result you will get array on mysql_fatch_assoc 

$result_array = array(); 
while($result = mysql_fatch_assoc($result)){ 
    $tmp_arr = array(); 
    $tmp_arr['mile_id'] = $result['mile_id']; 
    $tmp_arr['name'] = $result['name']; 

    $result_array[$result['task_id']]['name'] = $result['aname']; 
    $result_array[$result['task_id']]['description'] = $result['description']; 
    $result_array[$result['task_id']]['task_id'][] = $tmp_arr; 
} 


$result_array = array_values($result_array); 
print_r($result_array);