日期:2014-05-17  浏览次数:20466 次

php 遍历树,子节点可以有多个父节点,请各位大神指点
本帖最后由 asmd1234567 于 2013-09-12 11:56:42 编辑
我希望展示父子关系,一个父节点可以有多个子节点,一个子节点可以有多个父节点,由于一直运行不通过,也不知道自己写的函数是不是正确的,不好意思啊
 $result = array(); /*Parse error: syntax error, unexpected '=', expecting ',' or ';' */
/*我本来希望这个是个全局的数组,但是上网查了一下,发现现在不可以了,不知道各位大神有没有什么好的方法,小弟在此谢过啦*/
$result[0] = mysql_query("select cID,number,isbasicpart from relationship  where pID='{$id}'");/*cID为子节点号,isbasicpart为是否为叶节点,number为父子间的数量*/


echo "<table cellpadding='0' cellspacing='0' border='0'>"; 
echo "<tr> <td> {$id}";
$i=0;


 
function buildtree($i){

 while($row = mysql_fetch_array($result[$i])){ 
if($row['isbasicpart']==1)
  echo "<td>'--'<td>{$row['cID']}<td>'('<td> {$row['number']}<td>')'</tr>";
else  { echo "<td>'--'<td>{$row['cID']}<td>'('<td> {$row['number']}<td>')'";
           
$i=$i+1;
$sql="select cID,number,isbasicpart from relationship  where pID='{$row['cID']}'"; 
$result[$i]=mysql_query($sql);

 buildtree($i);



}

}
 echo '</table>';

}
 buildtree(0);

}
php 遍历 多个父节点

------解决方案--------------------
13 行处加上 global $result;
函数里面多个 td 标记未封闭
函数会有多个 table 闭标记产生,但只有一个 table 开标记


------解决方案--------------------
多看 (源代码,这个关键是看设计思路,至于算法上,基础web上通常需求不多,不过深入还是好的,能写出比较酷的代码,重要的还是设计框架和模式) 多写 (参照看的好的源代码的设计思路和代码规范)

然后就是没事看看书 , 多方面的 ,这样知识没有短板,就能逐渐有自己的知识体系