| | Bean | Posté le 05/06/2006 @ 15:36 | Petit astucien
653 Messages
| Salut la troupe, [hello]
Voilà je cherche à faire le total d'un champ dans une table, quand j'ai une condition mais je ne sais pas si c'est possible.
Ex : table : opertaion
mdate : janvier | montant : 125
février | montant : 235
janvier | montant : 625.36
mars | montant : 52
janvier | montant : 85.14
Voilà ce que je fais :
<?
require("inc/config.inc.php3");
$db = mysql_connect("$dbhost", "$dblogi", "$dbpass") or Die("Base Down !");
mysql_select_db("$dbbase",$db) or Die("Base Down !");
$req = MYSQL_QUERY("SELECT id,jdate,mdate,adate,nom,sum(montant),categorie,sous_categorie FROM operation where mdate='$choix_mois'");
$res = MYSQL_NUM_ROWS($req);
?>
<?
$i=0;
WHILE($i!=$res)
{
$jdate = mysql_result($req,$i,"jdate");
$mdate = mysql_result($req,$i,"mdate");
$adate = mysql_result($req,$i,"adate");
$nom = mysql_result($req,$i,"nom");
$montant = mysql_result($req,$i,"montant");
$categorie = mysql_result($req,$i,"categorie");
$sous_categorie = mysql_result($req,$i,"sous_categorie");
?>
<?
$i++;
}
?>
<table width=501 align=center>
<tr>
<td><? echo $compte_mois; ?></td>
</tr>
<tr>
<td><fieldset><legend><b>Opérations du mois : </b></legend>
<TABLE cellpadding=1 width=500 class=fieldset>
<TR>
<TD class="bandeau"><b>Mois</b></TD>
<TD class="bandeau"><? echo $mdate; ?></TD>
</TR>
<TR>
<TD> </TD>
<TD> </TD>
</TR>
<TR>
<TD class="bandeau"><b>Montant </b></TD>
<TD class="bandeau"><? echo $montant; ?></TD>
</TR>
</table>
</fieldset></td>
</tr>
</table>
</body>
</html>
$choix_mois est une variable que j'initialise dans un liste déroulant.
J'utilise la fonction SUM mais ça marche pas, quelqu'un a une idée ?
Merci les amis pour vos réponses futures.
| | |
| |
| Publicité |
|
| | AnimaCreation | Posté le 05/06/2006 à 16:59 | Petit astucien
1 Message
| Salut Bean,
1- Vérifie que le champs montant dans ta table est bien défini comme un nombre à virgule (FLOAT), sinon la fonction SUM ne marchera pas.
2- Je trouve ton code bizarre...
Je te propose celui là :
[code]$query="SELECT id,jdate,mdate,adate,nom,sum(montant),categorie,sous_categorie FROM operation where mdate='$choix_mois'";
$res=mysql_query($query);
// 1 seul rang suffit
$row = mysql_fetch_array($res);
$mdate = $row["mdate"];
$montant = $row["montant"];
[/code]
| | | | | elle | Posté le 05/06/2006 à 17:07 | Maîtresse astucienne
15847 Messages
| Salut AnimaCreation,
Tu as fait une erreur dans l'adresse de ton site sur ton profil... [clindoeil]
| | | | | Bean | Posté le 05/06/2006 à 19:35 | Petit astucien
653 Messages
| Salut AnimaCreation,
Merci pour la réponse, pour le code voici comment il est à l'origine : [code]<?
require("inc/config.inc.php3");
$db = mysql_connect("$dbhost", "$dblogi", "$dbpass") or Die("Base Down !");
mysql_select_db("$dbbase",$db) or Die("Base Down !");
$req = MYSQL_QUERY("SELECT * FROM operation where mdate='$choix_mois'");
$res = MYSQL_NUM_ROWS($req);
?>
<?
$i=0;
WHILE($i!=$res)
{
$jdate = mysql_result($req,$i,"jdate");
$mdate = mysql_result($req,$i,"mdate");
$adate = mysql_result($req,$i,"adate");
$nom = mysql_result($req,$i,"nom");
$montant = mysql_result($req,$i,"montant");
$categorie = mysql_result($req,$i,"categorie");
$sous_categorie = mysql_result($req,$i,"sous_categorie");
?>
<?
$i++;
}
?>
<table width=501 align=center>
<tr>
<td><? echo $compte_mois; ?></td>
</tr>
<tr>
<td><fieldset><legend><b>Opérations du mois : </b></legend>
<TABLE cellpadding=1 width=500 class=fieldset>
<TR>
<TD class="bandeau"><b>Mois</b></TD>
<TD class="bandeau"><? echo $mdate; ?></TD>
</TR>
<TR>
<TD> </TD>
<TD> </TD>
</TR>
<TR>
<TD class="bandeau"><b>Montant </b></TD>
<TD class="bandeau"><? echo $montant; ?></TD>
</TR>
</table>
</fieldset></td>
</tr>
</table>[/code]
J'avais fait une petite modif entre temps que j'ai glissé dans le code mis sir le form.
Bref, j'en viens à mon code, j'ai essayé ton code sans succès, il doit me manquer des bouts.
Je ne savais pas que le champs montant dans la table est bien défini comme un nombre à virgule (FLOAT)
Merci pour l'info.
Si tu pouvais m'éclaircir sur ton code. [bigsmile] | | | | | Bean | Posté le 17/06/2006 à 18:59 | Petit astucien
653 Messages
| Salut tout le monde,
Personne n'a d'idéee ????
Merci d'avance.... | | | | | Bean | Posté le 13/07/2006 à 17:46 | Petit astucien
653 Messages
| Salut tout le monde,
Pour info je viens de trouver comment faire la somme d'un champ !! Youpi !!
Voici le code :
<?
require("inc/config.inc.php3");
$db = mysql_connect("$dbhost", "$dblogi", "$dbpass") or Die("Base Down !");
mysql_select_db("$dbbase",$db) or Die("Base Down !");
$req_total = MYSQL_QUERY("SELECT SUM(montant) AS TOTAL_MOIS FROM operation where mdate='$choix_mois' GROUP BY mdate"); // C'est ce qui permet de faire les conditions pour la somme
$TOTAL_MOIS = mysql_result($req_total,0,"TOTAL_MOIS"); // on reccupère la somme dans la variable
?>
<?
$req = MYSQL_QUERY("SELECT * FROM operation where mdate='$choix_mois' ");
$mdate = mysql_result($req,0,"mdate");
$montant = mysql_result($req,0,"montant");
?>
<table width=501 align=center>
<tr>
<td><? echo $compte_mois; ?></td>
</tr>
<tr>
<td><fieldset><legend><b>Opérations du mois : </b></legend>
<TABLE cellpadding=1 width=500 class=fieldset>
<TR>
<TD class="bandeau" width="50%"><b>Mois</b></TD>
<TD class="bandeau" width="50%"><? echo $mdate; ?></TD>
</TR>
<TR>
<TD width="50%"> </TD>
<TD width="50%"> </TD>
</TR>
<TR>
<TD class="bandeau" width="50%"><b>Montant </b></TD>
<TD class="bandeau" width="50%"><? echo $TOTAL_MOIS; ?> <i>Euros</i></TD>
</TR>
</table>
</fieldset></td>
</tr>
</table>
C'est toujours bon de partager les solutions qu'on trouve
@ +
Modifié par Bean le 13/07/2006 17:48 | | | | | elle | Posté le 13/07/2006 à 17:50 | Maîtresse astucienne
15847 Messages
| Bean a écrit :
C'est toujours bon de partager les solutions qu'on trouve
Effectivement! Merci à toi. [hello]
| | | |
| | Haut de la page |
| | Inscrivez-vous ! |
- Posez vos questions
- Résolvez vos problèmes
- Aidez les autres
- Participez et créez vos discussions
- Dialoguez en privé avec d'autres membres
- Suivez vos sujets préférés
- Affichez les signatures des membres
|
|