0

私はそのような隣接リストモード構造を持っていて、Food = 9、Fruit=6のような親のすべてのタイトルを数えたいです

ここに画像の説明を入力してください

その機能を使用してタイトルをカウントする場合

  function display_children($parent, $level) 
     {

    $result = mysql_query('SELECT title FROM tree '.'WHERE parent="'.$parent.'"');

       while ($row = mysql_fetch_array($result))
        {
           $data=  str_repeat(' ',$level).$row['title']."\n";
           echo $data;
           $this->display_children($row['title'], $level+1);
        }   
  }

関数を呼び出す

  display_children('Food',0);

結果

エコー$dataによって; 私は私が望むときに正しい結果を得ていますが、私はすべてを9のように数えたいです

 Fruit Green Peer Red Cherry Yellow Banana Meat Pork

だからplzは私が関数を呼び出すときにすべてのデータを数える方法をガイドします

4

2 に答える 2

2
function display_children($parent, $level) 
{

   $result = mysql_query('SELECT title FROM tree '.'WHERE parent="'.$parent.'"');

   $count = 0;
   while ($row = mysql_fetch_array($result))
    {
       $data=  str_repeat(' ',$level).$row['title']."\n";
       echo $data;
       $count += 1 + $this->display_children($row['title'], $level+1);
    }  
    return $count; 
}
于 2012-05-10T07:26:36.337 に答える
0

を使用できますmysql_num_rows。これには、クエリが返した行数が含まれます。

function display_children($parent, $level) 
{
    $result = mysql_query('SELECT title FROM tree '.'WHERE parent="'.$parent.'"');
    $count = mysql_num_rows($result);

    while ($row = mysql_fetch_array($result))
    {
       $data=  str_repeat(' ',$level).$row['title']."\n";
       echo $data;
       $this->display_children($row['title'], $level+1);
    }   
  }

ただし、メニューはクエリが多いため、 http://www.sitepoint.com/hierarchical-data-database-2/のようなソリューションを実際に調べる必要があります。

于 2012-05-10T07:28:00.347 に答える