我目前正在尝试制作二叉树,并且目前我的SQL表结构如下
Node_ID Parent_ID Node_Position SID ------- --------- ------------- -------- 1 0 T 2 1 L 1 3 1 R 1 4 2 L 1 5 2 R 1 6 3 L 1 7 3 R 1 8 4 L 1 9 4 R 1 10 5 L 1 11 5 R 1 12 8 L 1
创建下面的手工制作的树,这里是an image link。
1 / \ 2 3 / \ / \ 4 5 6 7 /\ / \ 8 9 10 11 / 12
在这棵树中,当我同时填写ID为4和5的两个孩子时,我得到的是到目前为止,而不是得到SID 1的下一个父ID(即6),而是得到父ID为8,而不是二叉树的行为
用于根据发起人ID获取新孩子的父母ID的php代码。到目前为止,我所做的是以下
function getNodeInsertPostionByParentId($parentId){
$position = array('status'=>false);
$parents = array();
foreach($parentId as $parent){
$qry = "select Node_ID,Node_Position from tblregister where Parent_ID =".$parent." order by Node_Position asc";
$rst = mysql_query($qry);
$count = mysql_num_rows($rst);
if($count==2){
while($row = mysql_fetch_assoc($rst)){
$parents[$parent][] = $row['Node_ID'];
}
}elseif($count==1){
$position['status'] = true;
$position['parentId'] = $parent;
$position['node'] = 'R';
//echo '<pre>1';print_r($position);echo '</pre>';
return $position;
}else{
$position['status'] = true;
$position['parentId'] = $parent;
$position['node'] = 'L';
//echo '<pre>2';print_r($position);echo '</pre>';
return $position;
}
}
return searchByParents($parents);
}
function searchByParents($parents){
foreach($parents as $parent){
return getNodeInsertPostionByParentId($parent);
}
}
getNodeInsertPostionByParentId(array('1'));
实际上,到目前为止,我正在尝试基于SID获得新的孩子父母ID。我不知道该怎么办 。 。 。我在想是否应该检查该关卡是否包含所有孩子。 。或者有另一种方法可以解决这个问题