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: 22 años, 9 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($objCOUNT_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