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 :

Additionner des nombres dans un array [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Points : 151
    Points
    151
    Par défaut Additionner des nombres dans un array
    Bonjour,

    J'aurais besoin d'aide pour faire un calcul dans un array, je voudrais additionner toutes les valeur que me ressort l'array dans une requete sql.
    Je met mon code pour plus de compréhension.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?
    $variable = $_SESSION["variable"];
    $variable2 = $_SESSION["variable2"]; 
    {
    $reponse = mysql_query ("SELECT * FROM bca WHERE $variable LIKE '".$variable2."%' ORDER BY nom" )or die (mysql_error());
    while ($donnees = mysql_fetch_array($reponse) )
    {
    ?>
    La je fais une boucle pour sortir toutes les fiches.
    Ensuite j'affiche se qui m'interresse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <? echo ($donnees['paye']); ?>
    Seulement je n'arrive pas à additionner le total !!!! j'ai bien bricoler des trucs avec count ou count array seulement ça me retourne le nombre de fiches mais pas le calcul du total....
    Donc si vous pouviez me donner un coup mains.
    De l'aide serait la bienvenue

    Merci d'avance pour vos réponses collégiale.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 54
    Points
    54
    Par défaut
    c'est sum qu'il faut utiliser pas count

  3. #3
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    Salut, pourquoi tu ne fais pas directement le calcul dans ta requete SQL?
    ou sinon tu peux regarder du coté de la fonction array_map
    Tout énigme a une solution ! Tout est question de discipline !

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    pourquoi tu ne calcul pas directement au niveau de ta requete en atilisant la fonction SUM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select *,sum(paye)  from table ...group by valeur
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  5. #5
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    Citation Envoyé par ouatmad
    pourquoi tu ne calcul pas directement au niveau de ta requete en atilisant la fonction SUM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select *,sum(paye)  from table ...group by valeur
    si tu selectionne *, ca risque de ne pas marcher ou alors ta condition group by n'est pas complete. Si je ne me trompe pas, quand tu fais un sum la clause group by est super importante.
    Tout énigme a une solution ! Tout est question de discipline !

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Bebel : oui, il faut "grouper" tous les champs utilisés dans le SELECT qui ne sont pas utilisés dans une fonction d'agrégat.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Points : 151
    Points
    151
    Par défaut
    Alors j'ai modifier mon code en fonction de vos remarques et de l'aide de PHP.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <? 
    $reponse1 = mysql_query ("select nom, sum(paye)  from bca group by nom" )or die (mysql_error());
    while ($donnees1 = mysql_fetch_array($reponse1) )
    {
    ?>
     
    <? echo ($donnees1['sum(paye)']); ?>
    <?
    }
    ?>
    ça fonctionne presque seulement je n'ai toujours pas la somme du tableau... j'obtiens tous les chiffres les uns deriere les autres...

    à suivre

  8. #8
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    Dans ce cas, tu obtiels la paye de tout le monde, mais si tu veux juste la somme total de la paye il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <? 
    $reponse1 = mysql_query ("select sum(paye)  from bca" )or die (mysql_error()); 
    while ($donnees1 = mysql_fetch_array($reponse1) ) 
    { 
    ?> 
     
    <? echo ($donnees1['sum(paye)']); ?> 
    <? 
    } 
    ?>
    Tout énigme a une solution ! Tout est question de discipline !

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Points : 151
    Points
    151
    Par défaut
    tip top

    MERCI A TOUS

  10. #10
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Ouaip, cela peut venir du fait que `paye` n'est pas toujours renseigné. Tu as deux solutions :

    Soit tu veux la somme des salaires existants
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT nom, SUM(paye)
    FROM bca
    WHERE paye > 0
    GROUP BY nom
    Soit tu veux la même somme qu'avant mais n'afficher que les sommes supérieures à zéro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT nom, SUM(paye) AS paye_totale
    FROM bca
    GROUP BY nom
    HAVING paye_totale > 0
    PS : Ma solution retourne la somme par employé...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.2] Additionner des nombres entiers dans une chaine de caractères
    Par lecaptain dans le forum Langage
    Réponses: 2
    Dernier message: 23/10/2009, 12h12
  2. Réponses: 2
    Dernier message: 28/03/2006, 11h45
  3. probleme de trie des nombres dans mysql
    Par fwdavy dans le forum Administration
    Réponses: 3
    Dernier message: 23/03/2006, 21h31
  4. additionner des nombres à virgules
    Par Phiss dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/03/2006, 10h35
  5. Utilisation des nombres dans Winsock2
    Par DeusXL dans le forum MFC
    Réponses: 14
    Dernier message: 01/12/2004, 17h36

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