2009-09-14 9 views
0

J'utilise kohana et lorsque vous essayez d'extraire des données de la base de données, elle renvoie des variables de classe (comme $ user-> firstname) en tant que données de base de données. La table d'utilisateur a 12 colonnes et je récupère 8 colonnes mais à ce stade certaines des colonnes peuvent être vides (comme $ user-> phone). Comment puis-je trouver le numéro de colonne vide (Une bonne façon ..)Méthode correcte pour compter les variables vides

Merci beaucoup

Répondre

2

génériquement, vous pouvez essayer quelque chose comme:

/** 
* Count number of empty data members in a row object. 
*/ 
function countEmpty($row){ 
    $fields = array_keys($row->as_array()); 
    $cnt = 0; 
    foreach($fields as $f){ 
    if (empty($row->$f)) $cnt++; 
    } 
    return $cnt; 
} 
0

i trouvé solution. PHP a la fonction magique get_object_vars:

$data = User_Model::factory()->read(
    array('id' => $user_id), 
    'firstname, lastname, birthday, country, mobilephone, landphone, address' 
); 

$filled_data = 0; 
foreach(get_object_vars($data) as $v) 
{ 
    if ($v != '') $filled_data++; 
} 
return round($filled_data/count(get_object_vars($data)) * 100); 
+0

vous pouvez simplement utiliser count (array_filter ($ data-> as_array())); – gpilotino

Questions connexes