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 :

Somme sur une colonne, données venant d'une base MYSQL


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Somme sur une colonne, données venant d'une base MYSQL
    Bonjour,

    je me permet de vous demander de l'aide, car je ne trouve pas de solution à mon problème.

    Je voudrais pouvoir faire des sommes sur des colonnes, sachant que mes données sont calculées dans une boucle.
    Avec un peu de code ça va aller mieux.

    Ma requête principale qui me récupère des numéros de compte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //Récupération de la liste des directions complètes
    mysql_select_db($database_connection, $connection);
    $query_infoDirection = "SELECT a.descriptionDirection, b.descriptionService, c.numeroCompte, c.enveloppeCompte FROM directions a, services b, compte c WHERE a.directionsID=b.directionsID_directions AND b.serviceID=c.serviceID_services AND a.directionsID='".$directionsID."'";
    $infoDirection = mysql_query($query_infoDirection, $connection) or die(mysql_error());
    $row_infoDirection = mysql_fetch_assoc($infoDirection);
    C'est sur cette requete que je vais faire ma boucle : do {} while
    Dans cette boucle je vais calculer un certain nombre de choses, par des requetes à ma base, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //Récupération de toutes les informations du tableau
    			//****************************************PARTIE REPRO ETAGE****************************************//
    //Calcul du cout total pour les copieurs décentralisés
    //mysql_select_db($database_connection, $connection);
    $query_montantReleveTotalNB = "SELECT SUM(a.nombreReleve) as nombreReleveNB FROM releve a WHERE a.descriptionTarifReleve='A4 - Copie Noir et blanc' AND a.numeroCompteReleve='".$row_infoDirection['numeroCompte']."' AND a.dateReleve>='".dateEn($date1)."' AND a.dateReleve<='".dateEn($date2)."'";
    $montantReleveTotalNB = mysql_query($query_montantReleveTotalNB, $connection) or die(mysql_error());
    $row_montantReleveTotalNB = mysql_fetch_assoc($montantReleveTotalNB);
    Ceci va du coup de créer un certain nombre de ligne, par exemple : 26, avec pour chacunes des lignes la somme calculée.

    Maintenant ce que je cherche à faire, c'est tout en bas du tableau à la fin de ma boucle do{}while, d'avoir la somme globale de ce tableau sur la colonne.

    J'espère que je me suis assez bien fais comprendre.

    Merci à vous de votre aide.

    Cordialement.

    EDIT : La création du tableau (CODE)

    Code : 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    <table cellpadding="0" cellspacing="0" width="100%">
    		<tr>
    			<td class="th3">&nbsp;</td>
    			<td class="th1" colspan="2"><center>Rep. Etage</center></td>
    			<td class="th1" colspan="5"><center>CIMPR</center></td>
    			<td class="th3" colspan="2">&nbsp;</td>
    			<td class="th1" colspan="2"><center>Montant</center></td>
    		</tr>
    		<tr>
    			<td class="th1">Intitul&eacute;</td>
    			<td class="th1">N&B</td>
    			<td class="th1">Couleur</td>
    			<td class="th1">N&B</td>
    			<td class="th1">Couleur</td>
    			<td class="th1">Plans N&B</td>
    			<td class="th1">Plans Couleur</td>
    			<td class="th1">Spirales</td>
    			<td class="th1">Papier</td>
    			<td class="th1">Imprimerie</td>
    			<td class="th1">Enveloppe</td>
    			<td class="th1">Montant</td>
    		</tr>
    		<?php
    			do { 
    			//Récupération de toutes les informations du tableau
    			//****************************************PARTIE REPRO ETAGE****************************************//
    			//Calcul du cout total pour les copieurs décentralisés
    			//mysql_select_db($database_connection, $connection);
    			$query_montantReleveTotalNB = "SELECT SUM(a.nombreReleve) as nombreReleveNB FROM releve a WHERE a.descriptionTarifReleve='A4 - Copie Noir et blanc' AND a.numeroCompteReleve='".$row_infoDirection['numeroCompte']."' AND a.dateReleve>='".dateEn($date1)."' AND a.dateReleve<='".dateEn($date2)."'";
    			$montantReleveTotalNB = mysql_query($query_montantReleveTotalNB, $connection) or die(mysql_error());
    			$row_montantReleveTotalNB = mysql_fetch_assoc($montantReleveTotalNB);
     
    			//Calcul du cout total pour les copieurs décentralisés
    			//mysql_select_db($database_connection, $connection);
    			$query_montantReleveTotalCouleur = "SELECT SUM(a.nombreReleve) as nombreReleveCouleur FROM releve a WHERE a.descriptionTarifReleve='A4 - Copie couleur' AND a.numeroCompteReleve='".$row_infoDirection['numeroCompte']."' AND a.dateReleve>='".dateEn($date1)."' AND a.dateReleve<='".dateEn($date2)."'";
    			$montantReleveTotalCouleur = mysql_query($query_montantReleveTotalCouleur, $connection) or die(mysql_error());
    			$row_montantReleveTotalCouleur = mysql_fetch_assoc($montantReleveTotalCouleur);
     
    			//****************************************PARTIE CIMPR****************************************//
    			//Récupération des infos dans la table releveCimpr
    			//Calcul du montant total pour les reprographies NOIR ET BLANC
    			//mysql_select_db($database_connection, $connection);
    			$query_releveCimprNB= "SELECT SUM(a.nombreCopiesReleveCimpr) as nombreCopiesReleveCimprNB FROM relevecimpr a WHERE a.numeroCompteReleveCimpr='".$row_infoDirection['numeroCompte']."' AND a.descriptionTypeReleveCimpr='1' AND a.dateReleveCimpr>='".dateEn($date1)."' AND a.dateReleveCimpr<='".dateEn($date2)."'";
    			$releveCimprNB = mysql_query($query_releveCimprNB, $connection) or die(mysql_error());
    			$row_releveCimprNB = mysql_fetch_assoc($releveCimprNB);
     
    			//Calcul du montant total pour les reprographies COULEUR
    			//mysql_select_db($database_connection, $connection);
    			$query_releveCimprCouleur= "SELECT SUM(a.nombreCopiesReleveCimpr) as nombreCopiesReleveCimprCouleur FROM relevecimpr a WHERE a.numeroCompteReleveCimpr='".$row_infoDirection['numeroCompte']."' AND a.descriptionTypeReleveCimpr='2' AND a.dateReleveCimpr>='".dateEn($date1)."' AND a.dateReleveCimpr<='".dateEn($date2)."'";
    			$releveCimprCouleur = mysql_query($query_releveCimprCouleur, $connection) or die(mysql_error());
    			$row_releveCimprCouleur = mysql_fetch_assoc($releveCimprCouleur);
     
    			//Calcul du montant total pour les reprographies TIRAGE DE PLANS NOIR & BLANC
    			//mysql_select_db($database_connection, $connection);
    			$query_releveCimprPlans= "SELECT SUM(a.nombreCopiesReleveCimpr) as nombreCopiesReleveCimprPlans FROM relevecimpr a WHERE a.numeroCompteReleveCimpr='".$row_infoDirection['numeroCompte']."' AND a.descriptionTypeReleveCimpr='3' AND a.dateReleveCimpr>='".dateEn($date1)."' AND a.dateReleveCimpr<='".dateEn($date2)."'";
    			$releveCimprPlans = mysql_query($query_releveCimprPlans, $connection) or die(mysql_error());
    			$row_releveCimprPlans = mysql_fetch_assoc($releveCimprPlans);
     
    			//Calcul du montant total pour les reprographies TIRAGE DE PLANS COULEUR
    			//mysql_select_db($database_connection, $connection);
    			$query_releveCimprPlansCouleur= "SELECT SUM(a.nombreCopiesReleveCimpr) as nombreCopiesReleveCimprPlansCouleur FROM relevecimpr a WHERE a.numeroCompteReleveCimpr='".$row_infoDirection['numeroCompte']."' AND a.descriptionTypeReleveCimpr='5' AND a.dateReleveCimpr>='".dateEn($date1)."' AND a.dateReleveCimpr<='".dateEn($date2)."'";
    			$releveCimprPlansCouleur = mysql_query($query_releveCimprPlansCouleur, $connection) or die(mysql_error());
    			$row_releveCimprPlansCouleur = mysql_fetch_assoc($releveCimprPlansCouleur);
     
    			//Calcul du montant total pour les RELIURES
    			//mysql_select_db($database_connection, $connection);
    			$query_releveCimprReliure= "SELECT SUM(a.nombreReliureReleveCimpr) as nombreReliureReleveCimprReliure FROM relevecimpr a WHERE a.numeroCompteReleveCimpr='".$row_infoDirection['numeroCompte']."' AND a.dateReleveCimpr>='".dateEn($date1)."' AND a.dateReleveCimpr<='".dateEn($date2)."'";
    			$releveCimprReliure = mysql_query($query_releveCimprReliure, $connection) or die(mysql_error());
    			$row_releveCimprReliure = mysql_fetch_assoc($releveCimprReliure);
     
    			//****************************************PARTIE COMMANDE PAPIER****************************************//
    			//Calcul du cout total pour les commandes papier imprimante 
    			//mysql_select_db($database_connection, $connection);
    			$query_montantTotalCommandePapier = "SELECT SUM(a.montantTotalCommandePapier) as montantTotalCommandePapier FROM commandepapier a WHERE a.numeroCompteCommandePapier='".$row_infoDirection['numeroCompte']."' AND a.dateCommandePapier>='".dateEn($date1)."' AND a.dateCommandePapier<='".dateEn($date2)."'";
    			$montantTotalCommandePapier = mysql_query($query_montantTotalCommandePapier, $connection) or die(mysql_error());
    			$row_montantTotalCommandePapier = mysql_fetch_assoc($montantTotalCommandePapier);
     
    			//****************************************PARTIE IMPRIMERIE****************************************//
    			$query_releveImp= "SELECT SUM(a.montantGeneralReleveImp) AS montantGeneralImprimerie FROM releveimp a WHERE a.numeroCompteReleveImp='".$row_infoDirection['numeroCompte']."' AND a.dateReleveImp>='".dateEn($date1)."' AND a.dateReleveImp<='".dateEn($date2)."'";
    			$releveImp = mysql_query($query_releveImp, $connection) or die(mysql_error());
    			$row_releveImp = mysql_fetch_assoc($releveImp);
    			$totalRows_releveImp = mysql_num_rows($releveImp);
     
    			//****************************************CALCUL DU MONTANT TOTAL****************************************//
    			$montantTotal=(
    			($row_montantReleveTotalNB['nombreReleveNB']*0.04) + 
    			($row_montantReleveTotalCouleur['nombreReleveCouleur']*0.24) + 
    			($row_releveCimprNB['nombreCopiesReleveCimprNB']*0.04) + 
    			($row_releveCimprCouleur['nombreCopiesReleveCimprCouleur']*0.24) + 
    			($row_releveCimprPlans['nombreCopiesReleveCimprPlans']*1.40) + 
    			($row_releveCimprPlansCouleur['nombreCopiesReleveCimprPlansCouleur']*13.35) + 
    			($row_releveCimprReliure['nombreReliureReleveCimprReliure']*2.94) + 
    			$row_montantTotalCommandePapier['montantTotalCommandePapier'] + 
    			$row_releveImp['montantGeneralImprimerie']			
    			);
    		?>
    		<tr>
    			<td class="th3"><?php echo stripslashes($row_infoDirection['descriptionService']);?></td>
    			<td class="th3"><center><?php echo number_format($row_montantReleveTotalNB['nombreReleveNB'],0,',',' '); ?></center></td>
    			<td class="th3"><center><?php echo number_format($row_montantReleveTotalCouleur['nombreReleveCouleur'],0,',',' ')  ?></center></td>
    			<td class="th3"><center><?php echo number_format($row_releveCimprNB['nombreCopiesReleveCimprNB'],0,',',' ')  ?></center></td>
    			<td class="th3"><center><?php echo number_format($row_releveCimprCouleur['nombreCopiesReleveCimprCouleur'],0,',',' ')  ?></center></td>
    			<td class="th3"><center><?php echo number_format($row_releveCimprPlans['nombreCopiesReleveCimprPlans'],0,',',' ')  ?></center></td>
    			<td class="th3"><center><?php echo number_format($row_releveCimprPlansCouleur['nombreCopiesReleveCimprPlansCouleur'],0,',',' ')  ?></center></td>
    			<td class="th3"><center><?php echo number_format($row_releveCimprReliure['nombreReliureReleveCimprReliure'],0,',',' ')  ?></center></td>
    			<td class="th3"><center><?php echo number_format($row_montantTotalCommandePapier['montantTotalCommandePapier'],2,',',' ')  ?> &euro;</center></td>
    			<td class="th3"><center><?php echo number_format($row_releveImp['montantGeneralImprimerie'],2,',',' ')  ?> &euro;</center></td>
    			<td class="th3"><center><?php echo number_format($row_infoDirection['enveloppeCompte'],2,',',' ');?> &euro;</center></td>
    			<td class="th3"><center><?php echo number_format($montantTotal,2,',',' ') ?> &euro;</center></td>
    		</tr>
    		<?php } while ($row_infoDirection = mysql_fetch_assoc($infoDirection)); ?>
    	</table>

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    La tu nous montre juste tes requêtes peux tu nous montrer ton code d'affichage pour mieux comprendre
    Stay in Bed .. Save Energy

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci à toi d'avoir pris le temps de me répondre, post N:1 mis à jour avec le code demandé.

    Cordialement.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    et donc tu veux la somme totale pour chaque colonne de ton tableau?
    Stay in Bed .. Save Energy

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Oui!!!! Si c'est possible!!!

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Code : 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
    		<?php
    		//avant le do_while
    		$total_montants=0;
    			do { 
    					//.........
     
    			//****************************************CALCUL DU MONTANT TOTAL****************************************//
    			$montantTotal=(
    			($row_montantReleveTotalNB['nombreReleveNB']*0.04) + 
    			($row_montantReleveTotalCouleur['nombreReleveCouleur']*0.24) + 
    			($row_releveCimprNB['nombreCopiesReleveCimprNB']*0.04) + 
    			($row_releveCimprCouleur['nombreCopiesReleveCimprCouleur']*0.24) + 
    			($row_releveCimprPlans['nombreCopiesReleveCimprPlans']*1.40) + 
    			($row_releveCimprPlansCouleur['nombreCopiesReleveCimprPlansCouleur']*13.35) + 
    			($row_releveCimprReliure['nombreReliureReleveCimprReliure']*2.94) + 
    			$row_montantTotalCommandePapier['montantTotalCommandePapier'] + 
    			$row_releveImp['montantGeneralImprimerie']			
    			);
    			$total_montants += $montantTotal;
     
    			....
    		?>
    puis tu affiches totals_ montants et de la meme façon pour chaque colonne
    Stay in Bed .. Save Energy

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/03/2014, 18h14
  2. [XL-2003] Trier une colonne de moyenne, rattachée à une colonne de noms
    Par floctc dans le forum Excel
    Réponses: 3
    Dernier message: 11/03/2011, 09h57
  3. [MySQL] Mettre données venant d'une BDD dans "id" d'une balise html
    Par maryooman dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/12/2009, 14h25
  4. [JTable] Accéder à une colonne donnée
    Par b_52globemaster dans le forum Composants
    Réponses: 2
    Dernier message: 16/08/2005, 18h38
  5. Contraite NULL sur une colonne en fonction d'une autre colon
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2004, 19h29

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