bugfix> php > 投稿

データベースのスクリーンショットを示すテーブル名クラス

私はこのコードを試していますが、出力は0です 親愛なる友人私は二分木の左の子と右の子を数えなければなりません私のデータベース構造は以下の通りです。

function allcount($id)
{
    $sql = "SELECT parentsclass, childclassleft, childclassright FROM classes WHERE parentsclass = '".$id."'";
    $execsql = mysqli_query($conn,$sql); 
    $array = mysqli_fetch_array($execsql);  
    (array_count_values($array)); 
    $count = 0;  
    if(!empty($array['childclassleft']))
    {
        $count += allcount($array['childclassleft']) +1;
    }
    if(!empty($array['childclassright'])) 
    {
        $count += allcount($array['childclassright']) +1;
    }
    return $count; 
}
echo allcount();

回答 1 件
  • このコードを使用して、このコードは左と右の子ノードをカウントします。

    $memid="95000";   // your id
    function getTotalLeg($memid,$leg){ 
          global $conn;
         $sql="select child_class from tree_class where parent_id='".$memid."' and position='".$leg."'";
          $res=mysqli_query($conn,$sql);
          $row=mysqli_fetch_array($res);
          global $total;
           $total=$total+mysqli_num_rows($res);
             if($row['child_class']!=''){
               getTotalLeg ($row['child_class'],'L');
               getTotalLeg ($row['child_class'],'R');
              } 
              return $total;      
            }      
         $total=0; 
        $left=getTotalLeg($memid,"L");    
        echo $total."</br>"; 
         $total=0;
        $right=getTotalLeg($memid,"R");  
        echo $total;
    
    

あなたの答え