Lo que te ha puesto @paketetrueke en realidad es bastante simple, y no es que se trate de una propiedad mágica o esotérica. Es, a mi entender, un atributo que permite saber que aún hay valores a sumar. Es decir, no es un codigo para que hagas Copy+Paste, sino uno que te oriente en la logica de un cálculo recursivo.
Recordemos que una función recursiva es una función donde dada una condición, se vuelve a invocar a sí misma, con el parámetro de entrada como parámetro de la llamada, creciente o decreciente en función de lo que se necesita.
Además toda función recursiva debe tener un "punto de corte", es decir una salida por else que retorne la cascada de la recursividad al inicio, para devolver el resultado.
En tu ejemplo lo que pareces buscar es saber cuántas subcategorias tiene una categoría dada, considerando que por cada subcategoría podría haber una o mas categorías.
Pero lo que estás haciendo en ningún momento devuelve un valor numérico, sino que retorna una cadena. PAra que PHP te tome el valor devuelto como numero, además de SER un numero, debe realizarse una operación aritmética con él... y eso no lo haces.
Yo probaría algo como:
Código PHP:
Ver originalfunction get_tree($id) {
// buscar las categorías
$result = mysql_query("SELECT * FROM categorias WHERE parent_id='$id'"); // Declarar una variable numerica
if ($result)
{
{$level = 0;}
// Por cada registro obtenido
{
{
// DEvolvio registros, tiene hijos y los busca
$level = $level + get_tree($row['id']);
}
return $level;
}
else
// No devolvio registros.
{return 0;}
}
else
// Generó error. Sale con cero (esto puede corregirse para detectar errores de MySQL
{return 0;}
}