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] Multiplication après requête qui donne plusieurs données en résultats


Sujet :

PHP & Base de données

  1. #1
    Membre du Club 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
    Points : 55
    Points
    55
    Par défaut [SQL] Multiplication après requête qui donne plusieurs données en résultats
    Voici l'aspect de ma table personnel :
    -Id
    -Nom
    -Prenom
    -Salaire
    -Etablissement
    -Taux_de_charge

    Voici ma requete :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = "SELECT Salaire, Taux_de_charge FROM `personnel` WHERE Etablissement='$Etab'";
    $query = mysql_query($sql) or die($sql." : ".mysql_error());
    $data = mysql_fetch_assoc($query);

    J'aimerais multiplier chacun des salaires avec le taux de charges qui correspond cependant je ne vois pas du tout comment faire !!

    Une boucle while pour parcourir le résultat ? Cependant dans mon résultat j'ai les salaires et les taux de charges..Bref je sais pas trop si vous m'avez compris ou pas donc si jamais posez vos questions!

    Merci à vous

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Soit tu le fais directement en SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "SELECT (Salaire* Taux_de_charge) as Result FROM `personnel` WHERE Etablissement='$Etab';
    $query = mysql_query($sql) or die($sql." : ".mysql_error());
    $data = mysql_fetch_assoc($query);
    Soit tu fais une boucle while pour récupérer chaque ligne du tableau et tu fais le calcul:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql = "SELECT (Salaire* Taux_de_charge) as Result FROM `personnel` WHERE Etablissement='$Etab';
    $query = mysql_query($sql) or die($sql." : ".mysql_error());
    $result = array();
    while($data = mysql_fetch_assoc($query))
    {
    $result[] = $data['Salaire'] * $data['Taux_de_charge'];
    }
    Dans les deux cas, pour les afficher faudra faire une boucle sur les résultats donc ca revient à peu près au meme.

  3. #3
    Membre du Club 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
    Points : 55
    Points
    55
    Par défaut
    Toujours la quand il faut koopajah !

    Je pense que j'aurais d'autres questions sur ce topic la

    merci beaucoup

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Pas de problèmes, et ca me change de mes XSL qui m'en font voir de toutes les couleurs.

    Il faut penser que SQL est un language très puissant et qu'il n'est pas toujours plus rapide de déléguer les calculs à PHP!

  5. #5
    Membre du Club 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
    Points : 55
    Points
    55
    Par défaut
    Bonjour à tous !
    koopajah j'ai repris ton code :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql25 = "SELECT (Salaire_Perso* Taux_de_charge) as result FROM `personnel` WHERE Etablissement='$Etab' AND `Type_Contrat`='CDI'";
    $query25 = mysql_query($sql25) or die($sql25." : ".mysql_error());
    $data25 = mysql_fetch_assoc($query25);
    $charge_CDI = $data25['result'];

    J'aimerais savoir si le code que tu m'as donnée effectue bien ce que je souhaite. Voila le resultat que je veux obtenir.
    Le (salaire du 1er employé de ma base * taux de charges qui correspond) + (salaire du 2ème employé de ma base * taux de charges qui correspond) + etc etc...

    Ne faut-il pas que j'utilise la fonction SUM ?
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql25 = "SELECT SUM(Salaire_Perso* Taux_de_charge) as result FROM `personnel` WHERE Etablissement='$Etab' AND `Type_Contrat`='CDI'";
    $query25 = mysql_query($sql25) or die($sql25." : ".mysql_error());
    $data25 = mysql_fetch_assoc($query25);
    $charge_CDI = $data25['result'];[/



    Merci pour vos réponses !

  6. #6
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    Oui oui ca correspond. Ce que fait SQL c'est qu'il va chercher toutes les lignes qui répondent à la clause WHERE. ensuite il récupèrent les colonnes dont tu as besoin (et éventuellement des résultat d'opération comme dans ton cas) pour chaque ligne. Donc le taux de charge sera bien appliqué au salaire correspondant.

    Après effectivement tu peux appliquer un SUM si c'est la somme des salaires qui t'intéresse.
    Such is the situation in our Fallen Galaxy

  7. #7
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Effectivement si tu veux la somme de tous les salaires multipliés par leur taux de charge il faut que tu fasses la multiplication ET la somme, mais ca n'était pas expliqué comme ça dans ton premier message il me semble. Et ton code semble bon à première vue!

  8. #8
    Membre du Club 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
    Points : 55
    Points
    55
    Par défaut
    Oui je ne l'avais pas cité dans mon premier message tu as bien raison donc vous ne pouviez pas le deviné à moins que vous soyez devin...

    Bref, merci en tout cas pour vos réponses, ça m'a bien aidé !!

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

Discussions similaires

  1. [ODBC] Boucle qui ajouterai plusieurs données dans la base
    Par thebarbarius dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 04/11/2010, 15h08
  2. comment utliser les requetes qui recoit plusieures données
    Par ouadie99 dans le forum Accès aux données
    Réponses: 3
    Dernier message: 14/03/2008, 16h38
  3. SQL Server, mise en ligne de plusieur données avec délimiteur
    Par manhattan.project dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/06/2007, 17h52
  4. Réponses: 4
    Dernier message: 04/05/2006, 19h01
  5. SQL SERVER 2005 -- requête récursive avec bcp données
    Par evans dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/05/2006, 19h01

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