Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/05/2013, 05:36
Avatar de engonga
engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 24 años, 6 meses
Puntos: 8
contar items en una funcion recursiva

hola tengo una funcion recursiva y no se como sacar el total de los items

Código PHP:

function get_mlm_listing() {
    
    
    global 
$wpdb;
    global 
$current_user;
    if (isset(
$_GET["current_user_id"]) && !empty($_GET["current_user_id"]))
    {
        
$current_user_id = $_GET["current_user_id"];
    }
    else 
    {
        
$current_user_id = $current_user->ID;
    }
    
    
    
$users = $wpdb->get_results($wpdb->prepare("SELECT * FROM mlm WHERE parent_user_id = %d", $current_user_id));
    
    
    if (
$users == null && $current_user->ID == $current_user_id)
    {
        echo 
"<br />";
        echo 
"No tienes miembros en tu red";
        
//echo "You don't have any members below you yet, here is your referral link: \r
        /*<a href=" . get_bloginfo("url"). "/" . $current_user->ID . ">" . get_bloginfo("url") . '' . "/" . $current_user->ID . "</a><br />";
         */
    
}
    else 
    {
             
        
        
        function 
dependientes($nivel, $ulclassDependiente, $current_user_id ) {
            
            global 
$wpdb;
                    
            
//$q = mysql_query($sql);
            
            // Para cada dependiente del nivel solicitado...
            
            
            
            
            // Iniciamos la creación de la lista
            
$lista = '<ul>';
            
            
// Obtenemos los datos los dependientes del nivel solicitado
            
            
$users = $wpdb->get_results($wpdb->prepare("SELECT * FROM mlm WHERE parent_user_id = %d", $nivel));
            
//$sql = sprintf("SELECT id, nombre, jefe FROM funcionario WHERE jefe = %s", $nivel);
            
            //$mostrarMail = true;
            
            //while ($r = count($usersA))  {
            
foreach ($users as $obj){  // le digo que me muestre una i que va a ser el contador
            
                
                
                
$user_email = $wpdb->get_var($wpdb->prepare("SELECT user_email FROM " . $wpdb->prefix . "users WHERE ID = %d", $obj->user_id));
                
                    
$user_email = "";
                
                
$user_nicename = $wpdb->get_var($wpdb->prepare("SELECT user_nicename FROM " . $wpdb->prefix . "users WHERE ID = %d", $obj->user_id));
                
$user_profile = trim(str_replace(" ", "", strtolower($obj->login_id)));
                
$url = site_url();
                
                
                
$wpmlm_contact = "<a href='" . $url . "/members/" . $user_nicename . "' target='_blank'>[Contacar con el usuario]</a>&nbsp;&nbsp; <b>".$user_email."</b> ";
                
                
// Abrimos el nodo con el nombre del primer dependiente
                
                
                
                
                
                
$user_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM mlm WHERE parent_user_id = %d", $obj->user_id));
                
                
$lista .= '<li> ';
                
                
$lista .= "<b>" . $obj->login_id . " (" . $user_count . ")</b>&nbsp;&nbsp; " . $wpmlm_contact ;
                
                
// Utilizaremos esta variable para ver si seguimos consultado la BDD
                
$tiene_dependientes = null;
                
//$sql = sprintf("SELECT COUNT(jefe) FROM funcionario WHERE jefe = %s", $r['jefe']);
                //Corregido                
                
                
$tiene_dependientes = $user_count;
                
                
                
// Si tiene dependientes, ejecutamos recursivamente
                // tomando como parámetro el nuevo nivel
                
if ($tiene_dependientes) {
                    
// Eliminado: $lista .= get_categories($r['jefe']);
                    //$lista .= dependientes($r['jefe']);
                    //Corregido
                    
$ulID = "";
                    
$lista .= dependientes($obj->user_id, $ulclassDependiente, $current_user_id);
                } 
                
                
// Cerramos el nodo
                
$lista .= '</li> ';
                
            }
            
                        
            
// Cerramos la lista
            
$lista .= '</ul> ';
            return 
$lista;
            
            
    
        }
        echo 
'<div id="sidetreecontrol"><a href="?#">Colapsar todo</a> | <a href="?#">Expandir tdo</a></div>';
        echo 
"<div id='mlm_members'> \n";    
        echo 
dependientes($current_user_id, $ulclassDependiente, $current_user_id);
        echo 
"</div><!-- fin #mlm_members --> ";
        echo  
"<br><br>el total de tu lista es " .count($obj, COUNT_RECURSIVE); // muestra 8; 
        
        
    
}
} 

como se puede ver intento hacerlo con count($obj, COUNT_RECURSIVE); pero me devuelve 0

y ya no se por donde meterle mano a esta funcion