PHP递归函数返回不正确的分层SQL表数据数组

时间:2015-07-23 06:56:12

标签: php sql recursion

我在SQL表中有像这样的分层数据

ID         NAME                        PARENT_ID 
1         Sales                             
2         Marketing                      1
3         sales_optimiztaion.txt         2
4         Quotes                         6
5         list.xls                       4
6         General data                   

这是文件夹结构,我们可以获取每个文件的路径,例如,如果我们有文件list.xls,那么其父文件夹是QuotesGeneral data -> General data/Quotes/list.xls

我有递归函数,它返回每个文件的所有父项并返回它们的数组

function get_pathS($node) { 

$resultS = mysql_query('SELECT NAME, PARENT_ID FROM b_disk_object  
                       WHERE ID="'.$node.'";'); 
      $rowS = mysql_fetch_array($resultS);

      if ($rowS['NAME']!='') {

        $path=$rowS['NAME'];
                $content=array();
                $content[]=$path;

            get_pathS($rowS['PARENT_ID']);
    }

 return $content;
} 

它正常工作并将每个文件的所有父节点保存在数组中,但是当我调用此函数时,它只返回每个文件的第一个父节点。

这是函数调用

while ($row = mysql_fetch_array($query)) {

$folder= get_pathS($row['PARENT_ID']);

foreach($folder as $f){
echo $f.'<br>';
....

它只回显第一个父母,就像这样

Marketing 

Quotes

而不是

Marketing

Sales

Quotes

General data

0 个答案:

没有答案