//写一个吧,测下试试function SelectAllClassID($ParentID) 

$str='';
$Sql = "select * from Mac_Class where ParentID = '$ParentID' "; 
$Result = mysql_query($Sql); if(mysql_num_rows($Result)>0) 

    while($Row = mysql_fetch_array($Result)) 
   { 
     $str=$str.$Row['ID']; 
     if(!empty($Row[ParentID])){       SelectAllClassID($Row[ParentID]); 
     } 
   } 

return $str; 

解决方案 »

  1.   

    function SelectAllClassID($ParentID) 

    $str='';
    $Sql = "select * from Mac_Class where ParentID = '$ParentID' "; 
    $Result = mysql_query($Sql); if(mysql_num_rows($Result)>0) 

        while($Row = mysql_fetch_array($Result)) 
       { 
         $str=$str.'|'.$Row['ID']; 
         if(!empty($Row['ParentID'])){       SelectAllClassID($Row['ParentID']); 
         } 
       } 

    return $str; 

      

  2.   


    测试了不行啊。SelectAllClassID(1)则结果为 |1应该是第一行 $str = ""; 被重新调用了,所以每次为空。
      

  3.   

    上面的均不行,这个也没测试
    function SelectAllClassID($ParentID) 

    $str='';
    $Sql = "select * from Mac_Class where ParentID = '$ParentID' "; 
    $Result = mysql_query($Sql); if(mysql_num_rows($Result)>0) 

        while($Row = mysql_fetch_array($Result)) 
       { 
         $str.='|'.$Row['ID']; 
         if(!empty($Row['ParentID'])){       $str.='|'.SelectAllClassID($Row['ParentID']); 
         }
       } 

    return $str; 
      

  4.   


    function SelectAllClassID($ParentID) 

    $str='';
    $Sql = "select * from Mac_Class where ParentID = '$ParentID' "; 
    $Result = mysql_query($Sql); if(mysql_num_rows($Result)>0) 

        while($Row = mysql_fetch_array($Result)) 
       { 
         $str.='|'.$Row['ID']; 
         if(!empty($Row['ParentID'])){       $str.=SelectAllClassID($Row['ParentID']); 
         }
       } 

    return $str; 
      

  5.   

    这个要是递归echo或执行处理(比如:删除),就容易的多了,
    要连成字符,或数组,麻烦一些!上面的没测试!不对的话等高手了!
      

  6.   

    还是不行哦,结果一样。SelectAllClassID(1) 则结果为 |1 
      

  7.   

    你的方法因为第一次 比如 传入1,刚刚取得的ID为2的时候,就马上执行SelectAllClassID(2,$AllClassID),所以不会执行到ID为3这个步骤.
    你用下面的这个试下,没测试过.
    function SelectAllClassID($ParentID,$AllClassID) 

    $AllClassID = $AllClassID; 
    $Sql = "select * from Mac_Class where ParentID in( '$ParentID') "; 
    $Result = mysql_query($Sql); if($Num = mysql_num_rows($Result)) 

    $i=1;
    $ClassID = '';
    $WhereId = '';
    while($Row = mysql_fetch_array($Result)) 

    $i++;
    $WhereId = $Row['ID']; $ClassID = ($ClassID?$ClassID.',':'').$Row['ID']; //($ClassID?$ClassID.',':'')  判断 第一次的时候  不加逗号(这样可以在 
    sql语句中 where ParentID in (2,3) 语法不出现错误
    ).$AllClassID = ($AllClassID?',':'').$WhereId; //2,3
    if($i==$Num+1){
    SelectAllClassID($ClassID, $AllClassID); 
    )


    return $AllClassID; 

    明天测试下...
      

  8.   

    不知道是不是这位兄弟要的结果$ar=array(0=>array('name'=>'食物','id'=>1,'pid'=>0),
              1=>array('name'=>'植物','id'=>2,'pid'=>0),
              3=>array('name'=>'水果','id'=>3,'pid'=>1),
              4=>array('name'=>'树','id'=>4,'pid'=>2), 
              5=>array('name'=>'苹果','id'=>5,'pid'=>3),
              6=>array('name'=>'松树','id'=>6,'pid'=>4),
              7=>array('name'=>'饮料','id'=>7,'pid'=>1),
                 8=>array('name'=>'红苹果','id'=>8,'pid'=>5)     
    );
    function tree($tree,$pid,&$res=""){
    foreach ($tree as $key=>$items){
      if($items['pid']==$pid){
                $newid=$items['id'];
                      $res.=$newid.",";
                      tree($tree,$newid,$res);
     
            } 
    }
    return $res;
    }
    echo tree($ar,0);
      

  9.   

    不知道是不是这位兄弟要的结果$ar=array(0=>array('name'=>'食物','id'=>1,'pid'=>0),
              1=>array('name'=>'植物','id'=>2,'pid'=>0),
              3=>array('name'=>'水果','id'=>3,'pid'=>1),
              4=>array('name'=>'树','id'=>4,'pid'=>2), 
              5=>array('name'=>'苹果','id'=>5,'pid'=>3),
              6=>array('name'=>'松树','id'=>6,'pid'=>4),
              7=>array('name'=>'饮料','id'=>7,'pid'=>1),
                 8=>array('name'=>'红苹果','id'=>8,'pid'=>5)     
    );
    function tree($tree,$pid,&$res=""){
    foreach ($tree as $key=>$items){
      if($items['pid']==$pid){
                $newid=$items['id'];
                      $res.=$newid.",";
                      tree($tree,$newid,$res);
     
            } 
    }
    return $res;
    }
    echo tree($ar,0);