IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

addition valeurs d'une boucle while [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 10
    Par défaut addition valeurs d'une boucle while
    Je cherche le moyen de compter dans un tableau le nombre de personnes appartenant a un groupe ( groupe1 ) et a une heure ( 09:00 ).
    J'ai comme résultat du compteur : 200000000000000 ( effectivement il y a bien 2 personnes correspondant ce ces conditions dans mon tableau )
    Comment afficher uniquement le "2" ( c'est a dire additionner les valeurs affichée 2+0+0+0+0+0+ ... ) ?

    Merci

    Ci dessous le code actuel:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $r2=$my->query_array($sql2);  ( resultat de la requete )
     
    $counter=0;
    $today=date('H:i',strtotime($row['heure']));
     
     
    						 while ($row2=$r2->fetch_array()) {
     
    									 if ($row2['groupe'] == 'groupe1' && $today == '09:00')
    				 					 $counter++ ;
     
    								}
     
    											echo $counter;

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 10
    Par défaut
    Voici le code complet:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    while ($row=$r->fetch_array()) {
     
    	if ($row['type']=='test1') {
    		$sql2 = 'SELECT ... '; //( my request)
     
    		$r2=$my->query_array($sql2);
     
    		$counter=0;
    		$today=date('H:i',strtotime($row['heure']));
     
    		while ($row2=$r2->fetch_array()) {
     
    			if ($row2['libellee'] == 'groupe1' && $today == '09:00')
    			$counter++ ;
     
    			$t.= '<tr><td class="text">'.$txt_annule.'&nbsp; '.$row2['nom'].' '.$row2['prenom'].'</td>'.PHP_EOL;
    			$t.= '<td class="text">'.date('H:i',strtotime($row2['heure'])).'</td>'.PHP_EOL;
    			$t.= '<td class="text">'.$row2['libellee'].' </td>'.PHP_EOL;
    			$t.= '</tr>'.PHP_EOL;
    		}
     
    		echo $counter;
    	}
     
    	else if ($row['type']=='test2') {
     
    		$t.= '<tr><td class="text">'.$txt_annule.'&nbsp;&nbsp '.$row2['nom'].' '.$row2['prenom'].'</td>'.PHP_EOL;
    		$t.= '<td class="text">'.date('H:i',strtotime($row2['heure'])).'</td>'.PHP_EOL;
    		$t.= '<td class="text">'.$row2['libellee'].' </td>'.PHP_EOL;
    		$t.= '</tr>'.PHP_EOL;
    	}
    }

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    c'est mieux avec une vision d'ensemble ! (et après avoir INDENTE ton code)

    echo $counter; est à l'intérieur de la 1ère boucle while :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    while ($row=$r->fetch_array()) {
        // [...]
    		$counter=0;
       // [...]
     
    		while ($row2=$r2->fetch_array()) {
       // [...]
    			$counter++ ;
       // [...]
    		}
    		echo $counter;
       // [...]
    }
    Ce qui explique pourquoi il affiche d'abord 2, puis, à chaque tour de boucle, un 0 à coté !

    A corriger en le mettant à l'extérieur.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 10
    Par défaut
    Effectivement merci beaucoup ! Je suis encore débutant avec le developpement.

    Par contre mon compteur affiche "0" Or j'ai bien 2 personnes correspondant a mes 2 conditions du "if".

    Une idée?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Une idée, oui, et toi ?


    Indice : position de
    Là, on ne parle pas programmation, mais logique.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 10
    Par défaut
    Effectivement, j'ai rectifié la position de la variable.
    Merci pour tes réponses en tous cas. rapide et efficace . C'est agréable pour des débutants comme moi qui manque encore de logique
    A bientôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer les valeurs de textbox à chaque incrément d'une boucle while
    Par cclleemmeenntt dans le forum Macros et VBA Excel
    Réponses: 34
    Dernier message: 31/03/2015, 08h38
  2. Réponses: 0
    Dernier message: 16/06/2010, 15h27
  3. Réponses: 6
    Dernier message: 27/05/2010, 10h48
  4. alterner 2 valeurs dans une boucle while
    Par harlock59 dans le forum Langage
    Réponses: 6
    Dernier message: 10/04/2007, 11h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo