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

关于php、mysql,二叉树高手来帮忙,如何计算下面某个节点是否在某节点下面?
本帖最后由 kwdpx 于 2013-09-05 16:57:47 编辑



数据库member结构:
编号     上级ID    金额
id      sh1    jine
1001    999    49
1002    1001   20
1003    1001   29
1004    1002   10
1005    1003    12
1006    1002    10
1007    1006    4
1008    1003    17
1013     1008    8
1015    1006    6
1021    1008    9
……

比如想知道ID:1021在不在1003下面?如果在就显示在,如果不在1003下面就显示不在:

if(){
echo "在";
}else{
echo "不在";
exit();
}

------解决方案--------------------
组织成二叉树的数据结构,很明显通过递归查询就可以查到.
------解决方案--------------------
我来捡分了
function show($a,$b){ 
 $res = mysql_query("select sh1 from member where id=$a"); 
 $row = mysql_fetch_row($res); 
 if($row[0] == $b)
  return '在'; 
 elseif($row[0] == NULL) 
  return '不在'; 
 else{ 
  echo show($row[0],$b);   
 }

echo show(1004,1001);
echo '<br />';
echo show(1004,10031);