Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/09/2014, 15:57
mikehove
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Respuesta: Sumar registros en función recursiva

Hola gnzsoloyo. Lo que pasa que es una función recursiva de donde no extraigo los valores de una columna de la BD. Se trata de un menú del Modelo Adyacente, donde busco los "hijos" directos de cierto "id":

Código:
function get_tree($id)
{    
    $result = mysql_query("SELECT * FROM categorias WHERE parent_id='$id'");
    $level = 0;	 
       while ($row = mysql_fetch_array($result))
       {      
        echo str_repeat(' ',$level)';		
       }	
    echo $numero=mysql_num_rows($result);
}

Ejemplo:

get_tree(6);

Imprime en pantalla: 2
Si quisiera averiguar también los nietos, bisnietos... de cierto id de la base de datos, agrego, dentro de la función:

Código:
 get_tree($row['id'], $level + 1);
En el mismo caso, imprime en pantalla: "00112". Avisándome que son 4 los descendientes ("hijos") de ese mismo "id"[/CODE].

Código completo:

Código:
function get_tree($id)
{    
    $result = mysql_query("SELECT * FROM categorias WHERE parent_id='$id'");
    $level = 0;	 
       while ($row = mysql_fetch_array($result))
       {		    	
         get_tree($row['id'], $level + 1);
        echo str_repeat(' ',$level)';		
       }	
    echo $numero=mysql_num_rows($result);
}

get_tree(6);	

Resultado: 00112 (no se como sumar cada llamada como 0+0+1+1+2=4, que solo diga la suma total=4)
¿Me explico bien, ahora?