Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/02/2011, 14h01   #1
 
Inscription : avril 2009
Messages : 52
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 52
Points : -1
Points : -1
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 :
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
vivi21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 11h57   #2
narama87
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
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 :
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 :
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.
  Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 15h11   #3
 
Inscription : avril 2009
Messages : 52
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 52
Points : -1
Points : -1
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
vivi21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 17h03   #4
Membre expérimenté
 
Inscription : mai 2006
Messages : 501
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2006
Messages : 501
Points : 576
Points : 576
Bonjour,

D'après le code que tu as mis, je ferais plutôt cela dans la requête sql dans le style :
Code :
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...
Fabllot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 16h31   #5
 
Inscription : avril 2009
Messages : 52
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 52
Points : -1
Points : -1
j'ai du mal a saisir tes données peut tu me préciser.
merci
vivi21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 16h41   #6
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Code :
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 :
substring(cp, 1, 2) as dept
et il regroupe les sommes par département (les 2 premier caractère du code).
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h00.


 
 
 
 
Partenaires

Hébergement Web