> Tous les forumsForum des Webmasters

 Calcul sur valeur d'un champ ds bdd
Statut du sujet : NON RESOLU Imprimer
 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.
 Afficher le profil de Bean Envoyer un message privé à Bean
 
 
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]
Afficher le profil de AnimaCreationEnvoyer un message privé à AnimaCreation
 Revenir en haut de la page
 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]
Afficher le profil de elle Voir la configuration de elleEnvoyer un message privé à elle
 Revenir en haut de la page
 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]
Afficher le profil de Bean Voir la configuration de BeanEnvoyer un message privé à Bean
 Revenir en haut de la page
 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....
Afficher le profil de Bean Voir la configuration de BeanEnvoyer un message privé à Bean
 Revenir en haut de la page
 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
Afficher le profil de Bean Voir la configuration de BeanEnvoyer un message privé à Bean
 Revenir en haut de la page
 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]
Afficher le profil de elle Voir la configuration de elleEnvoyer un message privé à elle
 Revenir en haut de la page
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

TOUT EST GRATUIT !

Je crée mon compte



Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsForum des Webmasters

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page