|
Posted by strawberry on 12/02/06 18:00
The following functions are intended to return a set of ids, and their
respective children, as a single dimensional array ($ids), however, I'm
getting nothing. I think the problem is that the results are being
returned prematurely - before the recursion has finished - but I'm not
quite sure how to fix that. Any help appreciated.
Note: Also posted at alt.php.mysql
function array_merger($a,$b){
$count = count($b);
for ($i = 0; $i < $count; $i++) {
$a[]=$b[$i];
}
return $a;
}
function display_children($parent) {
$ids=array();
$childres=array();
if($parent == 'null'){
$query = "SELECT `id` FROM `task` WHERE ISNULL(`parent`);";
}else{
$query = "SELECT `id` FROM `task` WHERE `parent`= '$parent';";}
$result = mysql_query($query);
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) {//
$ids[]=$row['id'];
$childres[]=display_children($row['id']);
}
$count=count($childres);
for($i=0;$i<$count;$i++){
$ids=array_merger($ids,$childres[$i]);
}
return $ids;
}
[Back to original message]
|