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 :

[SQL] Comment faire la somme d'un champ


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut [SQL] Comment faire la somme d'un champ
    j'ai une table avec 5 champs dont l'un des champs est le salaire de chaque employé et j'aimerais faire la somme de tous les salaire.
    Comment je dois faire? Ya-t-il une fonction ou bien dois-je faire une boucle while du type :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $sql8 = "SELECT Salaire_Perso FROM `personnel` WHERE Id_Section='$service'";
    $query8 = mysql_query($sql8) or die($sql8 . ' : '  . mysql_error());
    $data8 = mysql_fetch_assoc($query8);
     
    $i = 0;
    while($data8 = mysql_fetch_array($query8))
    {
    $i = $i + $data8['Salaire_perso'];		
    } //fin du while
     
    echo 'Somme des salaires : ' .$i ;

  2. #2
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut
    J'ai donc fait la boucle while, cependant elle ne prends pas en compte le premier n-uplet (1ère ligne) de ma table. Elle me fait la somme de tous les autres mais pas la 1ère ligne!
    Merci

  3. #3
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, jette un oeil à la fonction sql SUM : http://dev.mysql.com/doc/refman/5.0/...functions.html (bas de page)

    Ca t'évitera une boucle inutile

  4. #4
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut
    OK merci a toi je vais jetter un oeil la dessus et je vous tiens au courant pour vous informer si mon probleme est réglé ou pas! Merci

  5. #5
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut
    Merci mais ca ne marche pas

    Voici ce que j'ai fait :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql8 = "SELECT Salaire_Perso FROM `personnel` WHERE Id_Section='$service'";
     
    $somme_salaire=SUM($sql8); ou encore
    $somme_salaire=SUM($data8); (<= en référence à ce que j'avais fait plus haut)

    Voici l'erreur :
    Fatal error: Call to undefined function: sum() in u:\pc stagiaire\hamza slimani\site php\autres pages\budget.php on line 60
    Je pense que cette fonction n'est utilisable que sous phpMyAdmin et non sous ma page html/php

  6. #6
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut
    Au fait j'ai fait ca :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql8 = "SELECT SUM(Salaire_Perso) FROM `personnel` WHERE Id_Section='$service'";
    $query8 = mysql_query($sql8) or die($sql8 . ' : '  . mysql_error());
    $data8 = mysql_fetch_assoc($query8);
    $somme_salaire=$data8['Salaire_Perso'];

    Mais ya un petit probleme pour récupérer le resultat !
    Cette ligne la ne marche pas ?
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $somme_salaire=$data8['Salaire_Perso'];

    Parce-que voici l'erreur que l'on m'affiche :

    Notice: Undefined index: Salaire_Perso in u:\pc stagiaire\hamza slimani\site php\autres pages\budget.php on line 62

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut
    SUM marche comme count, ou autres fonctions du même type.

    C'est DANS ta requête SQL que tu dois inclure le SUM...

    Donc tu passes de :
    $sql8 = "SELECT Salaire_Perso FROM `personnel` WHERE Id_Section='$service'";

    à
    $sql8 = "SELECT SUM(Salaire_Perso) FROM `personnel` WHERE Id_Section='$service'";

    j'ai pas testé, mais ça doit marcher...

    A noter, tu as aussi :

    * AVG: Calcule la moyenne d'une colonne (ou de chaque regroupement si elle est couplée à la clause GROUP BY)
    * COUNT: Calcule le nombre de lignes d'une table (ou de chaque regroupement ...)
    * MAX: Calcule la valeur maximale d'une colonne (ou de chaque regroupement ...)
    * MIN: Calcule la valeur minimale colonne (ou de chaque regroupement ...)
    * SUM: Effectue la somme des valeurs d'une colonne (ou de chaque regroupement ...)

    EDIT :

    pour récupérer la valeur dans ton array, tu dois plutôt mettre :
    $somme_salaire=$data8['0'];

  8. #8
    Membre confirmé Avatar de Yagami_Raito
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 106
    Par défaut
    Merci pour vos réponses !!

    Voici le code si jamais quelqu'un avait le même problème que moi :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $sql8 = "SELECT SUM(Salaire_Perso) as somme_salaire FROM `personnel` WHERE Id_Section='$service'";
    $query8 = mysql_query($sql8) or die($sql8 . ' : '  . mysql_error());
    $data8 = mysql_fetch_assoc($query8);
    $somme_salaire=$data8['somme_salaire'];
     
    echo 'Somme des salaires des employés : ' .$somme_salaire;


    EDIT: Le fait que tu compare la fonction SUM() à la fonction COUNT() m'a beaucoup aidé !
    Merci à vous

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut
    juste pour clore le topic, voilà un petit bout de code analogue :

    $sql1 = mysql_query("SELECT count(*) FROM ma_table WHERE DATE(nom_de_champ) >= '$variable_php'");
    $nb_reserv = Mysql_result($sql1,(0),(0));

    Ca marche bien. Ici, j'utilise un Mysql_result.
    Si on fait un
    echo $nb_reserv ;

    On a bien le nombre de lignes répondant à la requète...

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

Discussions similaires

  1. Requete SQL : comment faire un cumul
    Par yannick069 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/04/2015, 13h21
  2. Réponses: 3
    Dernier message: 19/12/2014, 19h31
  3. [PL/SQL] Comment tester l'existence d'un champ?
    Par nanou9999 dans le forum Oracle
    Réponses: 4
    Dernier message: 19/04/2012, 15h25
  4. Comment faire la somme d'un sous état ?
    Par Fredri dans le forum IHM
    Réponses: 1
    Dernier message: 12/12/2005, 13h18
  5. [SQL] Comment faire ma requête
    Par kaiserazo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 30/05/2005, 10h39

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