2
我创建了一个递归函数来获取产品的父级产品。我几乎可以确定我已经快到了,但需要帮助完成递归。如何使用递归来检索父节点?
我正在寻找的结果是这样的:
Product 1 (id:1, parent:none)
Product 2 (id:2, parent:1)
--- --- Product 3 (id:3, parent:2)
--- --- Product 4 (id:4, parent:2)
--- Product 5 (id:5, parent:1)
--- --- Product 6 (id:6, parent:5)
--- --- Product 7 (id:7, parent:5)
我更新的功能如下:
function get_parents ($pid, $found = array()) {
array_push ($found, $pid);
$sql = "SELECT * FROM products WHERE child_id = '$pid'";
$result = mysql_query($sql) or die ($sql);
if(mysql_num_rows($result)){
while($row = mysql_fetch_assoc($result)){
$found[] = get_parents($row['pid'], $found);
}
}
return $found;
}
我把它用简单:
$parents = get_parents($pid);
的我遇到的问题是,当我运行它时,它创建了一个无限循环,不会中断。
我不想得到完成用于发送垃圾邮件,所以我救了我的阵列到一个文本文件,可以在这里http://vasa.co/array.txt
看到任何帮助,将严重赞赏:-)
“挣扎”怎么样?发生了什么?更加详细一些。 –
我没有看到无限循环。 while循环会在行用完时结束。看到一个数据库有有限的行数......你可以看到我要去哪里。修复您的代码,使用您的发布代码中不存在的变量,并提供更多信息。 –
@Ram他/她正在寻找的术语是递归。 – NullUserException