我有像这样的邻接列表模式结构,我想要计算所有父母的标题,如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);
结果
通过echo $ data;我得到了正确的结果,但我想要算得上9
Fruit Green Peer Red Cherry Yellow Banana Meat Pork
所以当我调用函数时,plz指导如何计算所有数据
答案 0 :(得分: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;
}
答案 1 :(得分: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/