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 de colonne


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 53
    Par défaut somme de colonne
    bonjour,

    J'ai un tableau comme ceci, je souhaite avoir une somme de mes colonnes par département mais je suis un peu débutante et je n'arrive pas à faire la somme des mes colonnes;
    Le but s'est d'avoir une ligne par département et de faire la somme de tous les montants prévue du département.

    voici mon code pouvez m'apporter des solutions.
    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
     
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="style.css">
    <link rel="icon" type="image/ico" href="favicon.ico">
     </head>
     
    <body>
     
     <div align="center"> <h1>    Liste TOTALE </h1></div>
    <?php
     
    $link= @mysql_connect("") or die("Le site est temporairement saturé de visiteurs!<BR><BR>Nous vous prions de nous excuser pour la gêne occasionnée.</BODY></HTML>");
    	mysql_query ("SET NAMES 'iso-8859-1'"); 
    	@mysql_select_db("") or die("Echec de sélection de la base. <BR><BR>Veuillez nous excuser pour la gêne occasionnée.</BODY></HTML>");
     
    $annee = '2010';
    //$annee = $_GET['annee'];
    $table1="ETS";  // Nom de la table1
    $table2="CONT_ETS";  // Nom de la table2
     
    echo "<table align=center width=80% border=1px background-color=#f2e3c4>";
    	$html="<tr>";
        $html.="
    	<td width=5%>CODE ETS</td>
    	<td width=5%>CODE POSTAL</td>
    	<td width=15%>PREVU</td>
    	<td width=15%>VERSEMENT</td>
    	<td width=15%>SOLDE</td>
    	
    	
    	</tr>";  	
    echo $html;
     
     
    $sql="SELECT * FROM $table1,$table2 WHERE $table2.code_ets = $table1.code_ets AND $table1.cp LIKE '21%' AND annee=".$annee;
    $rs =mysql_query($sql);
     
    while ($ligne=mysql_fetch_array($rs,MYSQL_ASSOC))
    {
    	$code_ets  		= $ligne['code_ets'];
    	$cp				= $ligne['cp'];
    	$prevu  		= $ligne['prevu'];
    	$versement  	= $ligne['versement1']+$ligne['versement2'];
    	$solde			=$ligne['prevu']-($ligne['versement1']+$ligne['versement2']);
    	$nb++;
        echo "<table align=center width=80% border=1px background-color=#f2e3c4>";
    	$html="<tr>";
        $html.="
    
    	<td width=5%>$code_ets</td>
    	<td width=5%>$cp[0]$cp[1]</td>
    	<td width=15%>$prevu</td>
    	<td width=15%>$versement</td>
    	<td width=15%>$solde</td>
    	
    	</tr>";
     
     
    echo $html;
    echo "</table>\n";
    }
     
     
    ?>
    </body>
    </html>
    Merci de votre aide

  2. #2
    narama87
    Invité(e)
    Par défaut
    je vois pas ton problème ? tu veux additionner les champs d'une même colonnes ou les champs de plusieurs colonnes ?
    si c'est le premier cas , tu parcours la table en utilisant une boucle while et tu fais un "+=" de la colonne souhaités exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $somme=0;
    while ($ligne=mysql_fetch_array($rs,MYSQL_ASSOC))
    {
    	$somme 		+= $ligne['code_ets'];
    	}
    $somme contient la somme de toutes les valeurs de la colonne "code_ets" .
    pour le deuxième cas tu fais la même boucle , seul le contenu de la somme change :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $somme=0;
    while ($ligne=mysql_fetch_array($rs,MYSQL_ASSOC))
    {
    	$somme 		+= $ligne['code_ets']+$ligne['cp'];
    	}
    la somme comporte les valeurs de 'code_ets ' et 'cp'
    j'espère que cela t'apporte de l'aide .
    bonne continuation.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 53
    Par défaut Par département
    Je possède une colonne de code postaux, comment je fais pour ne faire ressortir que la somme des code_ets pour le département X, sachant que le département X je dois le récupérer en prenant les deux premiers chiffres des codes postaux. Et je ne sais pas faire.

    merci pour vos solutioins

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Bonjour,

    D'après le code que tu as mis, je ferais plutôt cela dans la requête sql dans le style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql= "SELECT sum(code_ets) as somme, substring(cp, 1, 2) as dept 
       FROM [tes_tables]
       WHERE [tes_conditions]
       GROUP BY dept ";
    A vérifier tout de même la fonction substring je ne suis pas certain des paramètres...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 53
    Par défaut
    j'ai du mal a saisir tes données peut tu me préciser.
    merci

  6. #6
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql= "SELECT sum(code_ets) as somme, substring(cp, 1, 2) as dept 
       FROM [tes_tables]
       WHERE [tes_conditions]
       GROUP BY dept ";
    La requête affiche la somme de "code_etc"
    et les 2 premier chiffres du code postal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    substring(cp, 1, 2) as dept
    et il regroupe les sommes par département (les 2 premier caractère du code).

  7. #7
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 2
    Par défaut
    Citation Envoyé par narama87 Voir le message
    je vois pas ton problème ? tu veux additionner les champs d'une même colonnes ou les champs de plusieurs colonnes ?
    si c'est le premier cas , tu parcours la table en utilisant une boucle while et tu fais un "+=" de la colonne souhaités exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $somme=0;
    while ($ligne=mysql_fetch_array($rs,MYSQL_ASSOC))
    {
    	$somme 		+= $ligne['code_ets'];
    	}
    $somme contient la somme de toutes les valeurs de la colonne "code_ets" .
    pour le deuxième cas tu fais la même boucle , seul le contenu de la somme change :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $somme=0;
    while ($ligne=mysql_fetch_array($rs,MYSQL_ASSOC))
    {
    	$somme 		+= $ligne['code_ets']+$ligne['cp'];
    	}
    la somme comporte les valeurs de 'code_ets ' et 'cp'
    j'espère que cela t'apporte de l'aide .
    bonne continuation.
    Merci bcp ça marche nickel

Discussions similaires

  1. Somme de colonne comme sur Sql Server
    Par Soulama dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 16/06/2010, 13h51
  2. Somme de Colonne quickreport
    Par khier dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/01/2007, 13h44
  3. somme de colonnes HTML
    Par freestyler1982 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/11/2006, 11h27
  4. faire une somme de colonnes ?
    Par viny dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 08/09/2006, 15h49
  5. Réponses: 5
    Dernier message: 07/06/2006, 17h04

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