Трудно ми беше да се опитам да разбера вашата функция. Мисля, че това ще направи това, което искате. Той получава всички деца на категория с идентификатор $id, както и техните деца (по този начин се получава цялата подкатегория, ефектът на подкатегория, който желаете).
function categoryChild($id) {
$s = "SELECT ID FROM PLD_CATEGORY WHERE PARENT_ID = $id";
$r = mysql_query($s);
$children = array();
if(mysql_num_rows($r) > 0) {
# It has children, let's get them.
while($row = mysql_fetch_array($r)) {
# Add the child to the list of children, and get its subchildren
$children[$row['ID']] = categoryChild($row['ID']);
}
}
return $children;
}
Тази функция ще върне:
$var = array(
'categoryChild ID' => array(
'subcategoryChild ID' => array(
'subcategoryChild child 1' => array(),
'subcategoryChild child 2' => array()
)
),
'anotherCategoryChild ID' => array() # This child has no children of its own
);
По принцип връща масив с идентификатора на детето и масив, съдържащ идентификаторите на неговите деца. Надявам се това да е от полза.