您好我试图在db中记录记录的所有子节点和子子节点 到目前为止,我有这个
function fetchNetChildren($parent, $network) {
$db = JFactory::getDBO();
$db->setQuery('SELECT id FROM #__sometable_clients WHERE network_referal = '.$parent.' AND networks = '.$network.' AND `status` > 0');
$list = array();
while (true){
$row = $db->loadAssocList();
$list[] = $row['id'];
$list = array_merge($list, fetchNetChildren($row['id'], $network));
}
return $list;
}
当我跑这个时,我有一个500的恐怖,不知道为什么,任何提示?
答案 0 :(得分:0)
我已经使用不同的方法实现了这一点,我放弃了最初的功能,并创建了另外两个返回我想要的东西。
1 - 我创建了一个mysql查询,该查询返回所提供id的所有子节点,孙子节点等的多维数组。
function getChilds($parentid, $network) {
// query linda e maravilhosa
$query = '
select @pv:=id as id, network_referal from #__mytable
join
(select @pv:='.$parentid.')tmp
where network_referal=@pv and networks = '.$network.' ';
$campos = carregarcampos($query,'list');
return $campos;
}
2 - 现在我可以操作数据$ elements并创建一个组织提供数据的php multidimentional数组
function buildTree(array $elements, $parentId = 0) {
$branch = array();
foreach ($elements as $element) {
if ($element['parent_id'] == $parentId) {
$children = buildTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$branch[] = $element;
}
}
return $branch;
}
所以要使用我必须运行
buildTree(getChilds($parentid, $network), $parentid)