compter le nombre de champs vides dans 1 enregistrement SQL

compter le nombre de champs vides dans 1 enregistrement SQL - PHP - Programmation

Marsh Posté le 16-03-2012 à 13:58:18    

dans le cadre de la création d'une barre de progression de remplissage d'un formulaire, je souhaite faire ceci en sql
 
compter le nombre de champs non renseignés (ou renseignés) dans 1 enregistrement.
 
 
pour compter le nombre de champs total, j'applique ceci :  
 

Code :
  1. $result = mysql_query('select * from table WHERE id=1');
  2. $i = 0;
  3. while ($i < mysql_num_fields($result))
  4. {
  5.    $i++;
  6. }
  7. echo $i;


 
pour faire ma barre de progression, je soustrairais (nb total des champs) - (nb champs non renseignés)
 
savez vous comment faire pour cela ?
 
 
J'ai testé ceci mais ca ne fonctionne pas:  
 

Code :
  1. <?php
  2. $result = mysql_query('select * from table WHERE id=1 ');
  3. $i = 0;
  4. while ($i < mysql_num_fields($result)) {
  5.    $meta = mysql_fetch_field($result, $i);
  6.    $vide= "$meta->name";
  7.  
  8.    if(empty($vide))
  9.    $i++;
  10. };
  11. }
  12. echo $i;
  13. ?>


Message édité par CARL KEATON le 16-03-2012 à 14:20:26
Reply

Marsh Posté le 16-03-2012 à 13:58:18   

Reply

Marsh Posté le 16-03-2012 à 15:33:10    

Code :
  1. $query = "select * from table where id = 1";
  2. $result = mysql_query($query);
  3. $data = mysql_fetch_array($result,MYSQL_ASSOC);
  4. $nb_fields = 0;
  5. $nb_empty = 0;
  6. foreach($data as $key=>$value){
  7.    $nb_fields ++;
  8.    if($value =='') [
  9.         $nb_empty ++;
  10.     }
  11. }


---------------

Reply

Marsh Posté le 16-03-2012 à 15:35:34    

merci!!!!
 
merde je viens de faire ca à ma sauce et ca fonctionne mais je ne sais pas si c'est aussi fiable que toi !
 

Code :
  1. <?php
  2. $result =  'select * from table WHERE admin_id=1' ;
  3. $req = mysql_query($result) or die(header ('Location: ../error.php'));
  4. $data = mysql_fetch_assoc($req);
  5.  
  6. $i = 0;
  7. $y = 0;
  8.  
  9. while ($i < mysql_num_fields($req)) {
  10.   $meta = mysql_fetch_field($req, $i);
  11.  
  12.     $champs = $meta->name;
  13.     
  14.     if (empty($data[''.$champs.'']))
  15.         {
  16.             $y++;
  17.         };
  18.     
  19.      $i++;
  20. }
  21. echo $i.'<br>';
  22. echo $y;
  23.  
  24. ?>

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed