Bom dia, vinha por este meio pedir a ajuda pois estou a tentar usar uma função recursiva na criação de uma arvore e não estou a conseguir porque me da erro de memoria. Ja encontrei varia informação acerca disto e a maior parte incentivava a mudar a memoria predifinida que vem no php mas o que eu realmente queria que me ajudassem era de alguma forma que a função parasse e não andasse num ciclo "infinito" ate nao ter mais memoria. Se alguem me puder ajudar agradeço..
Deixo aqui o codigo:
Código (PHP):
Com os melhores cumprimentos.
Deixo aqui o codigo:
Código (PHP):
function treeview()
{
$i = 0;
$result = array();
$rs = mysql_query("select * from dados3 where nivel = 1");
while($row = mysql_fetch_array($rs))
{
$node = array();
$node['id'] = $row['id'];
$node['text'] = $row['descricao'];
$node['state'] = 'closed';
$node['children'] = has_child($row['id']);
array_push($result, $node);
}
echo json_encode($result);
}
function has_child($id){
$result2 = array();
$node_2 = array();
$rs = mysql_query("select * from dados3 where id_nivel_superior=$id");
$row = mysql_fetch_array($rs);
$node_2['text'] = $row['descricao'];
$node_2['state'] = 'closed';
$node_2['children'] = has_child($id , -3);
array_push($result2, $node_2);
return $result2;
}
{
$i = 0;
$result = array();
$rs = mysql_query("select * from dados3 where nivel = 1");
while($row = mysql_fetch_array($rs))
{
$node = array();
$node['id'] = $row['id'];
$node['text'] = $row['descricao'];
$node['state'] = 'closed';
$node['children'] = has_child($row['id']);
array_push($result, $node);
}
echo json_encode($result);
}
function has_child($id){
$result2 = array();
$node_2 = array();
$rs = mysql_query("select * from dados3 where id_nivel_superior=$id");
$row = mysql_fetch_array($rs);
$node_2['text'] = $row['descricao'];
$node_2['state'] = 'closed';
$node_2['children'] = has_child($id , -3);
array_push($result2, $node_2);
return $result2;
}
Com os melhores cumprimentos.