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 :

Réaliser une somme avec "SELECT SUM"


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    .
    Inscrit en
    Juin 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juin 2014
    Messages : 25
    Par défaut Réaliser une somme avec "SELECT SUM"
    Bonjour,

    J'essaie en vain de faire la somme d'une colonne (avec conditions) en vain :

    je souhaite calculer la somme des revenus pour un client dont le prénom et le nom sont $prenomNomClt (on l'appellera Daniel MARTIN) et le n° de projet est $numpjt (par exemple 362).

    Lorsque je rentre dans le code la chaîne de caractère "Daniel MARTIN" et 362 pour le n° de projet j'ai bien la somme de revenus qui s'affiche, mais lorsque je mets mes noms de variable $prenomNomClt et $numpjt, rien ne s'affiche.

    Et pourtant, <?=$prenomNomClt?> renvoie bien "Daniel Martin" et <?=$numpjt?> renvoie bien "362". Je ne comprends pas où est mon erreur.

    Je vous remercie par avance de m'aiguiller

    François

    PS : ci-dessous mon bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	$totRevPro_clt= $bdd->query("SELECT  SUM(montant_rev) AS totRevProClt FROM revenus WHERE  beneficiaire_rev like '$prenomNomClt' AND pjt_id = '$numpjt'");
    	$TotRevProclient = $totRevPro_clt->fetch();
    	$TOTAL_rev_pro_clt= $TotRevProclient['totRevProClt'];
     
            $prenomNomClt = $clt['prenom_nom_clt'];	
            $numpjt=$_GET['numpjt'];

  2. #2
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Bonjour,

    Même si je n'avais jamais fait de PHP (ça commence en fait à dater), je me poserais une première question : que donne cette partie ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT  SUM(montant_rev) AS totRevProClt FROM revenus WHERE  beneficiaire_rev like '$prenomNomClt' AND pjt_id = '$numpjt'"
    Affichez le résultat de cette expression, est-ce accepté par le compilateur ? Je n'ai pas touché à PHP 7 donc je ne peux être sûr.

  3. #3
    Membre averti
    Homme Profil pro
    .
    Inscrit en
    Juin 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juin 2014
    Messages : 25
    Par défaut
    Bonjour CINCINATUS

    Merci d'avoir pris le temps de me répondre.

    Cette requête fonctionne mais sans les variables. En fait, si je remplace $prenomNomClt par le prénom et le nom du client (Daniel MARTIN pour l'exemple) et $numpjt par 362 (pour l'exemple aussi) ça fonctionne bien.

    Testé sur phpmyadmin et en local

    Bien à toi

    François

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Et pourtant, <?=$prenomNomClt?> renvoie bien "Daniel Martin" et <?=$numpjt?> renvoie bien "362".
    Ligne 1 ? Je ne vois pas comment.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Membre averti
    Homme Profil pro
    .
    Inscrit en
    Juin 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juin 2014
    Messages : 25
    Par défaut
    Bonjour,

    Merci d'avoir pris le temps de me lire et de me répondre.

    Ci dessous résultats des var_dump et echo :
    var_dump ($prenomNomClt) : string(13) "Daniel MARTIN"

    < ?=$prenomNomClt?> : Daniel MARTIN

    TOTAL REVENUS - var_dump($TOTAL_rev_pro_clt) : NULL

    var_dump($numpjt) : string(3) "362"

    < ?=$numpjt ?> : 362

    var_dump($TOTAL_rev_pro_clt->errorInfo()) : array(3) { [0]=> string(5) "00000" [1]=> NULL [2]=> NULL }

    var_dump requete $totRevPro_clt : object(PDOStatement)#6 (1) { ["queryString"]=> string(123) "SELECT SUM(montant_rev) AS totRevProClt FROM revenus WHERE beneficiaire_rev like '' AND pjt_id = '' AND categorie_rev = 1" }


    Ce n'est peut être que le fruit du hazard mais ça mes 2 variables me renvoie bien les informations souhaitées.

    François

  6. #6
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Citation Envoyé par fra340 Voir le message
    var_dump requete $totRevPro_clt : object(PDOStatement)#6 (1) { ["queryString"]=> string(123) "SELECT SUM(montant_rev) AS totRevProClt FROM revenus WHERE beneficiaire_rev like '' AND pjt_id = '' AND categorie_rev = 1" }


    Ce n'est peut être que le fruit du hazard mais ça mes 2 variables me renvoie bien les informations souhaitées.
    J'espère que ce n'est pas le fruit du hasard, par contre là c'est clairement un problème de concaténation.

    Une autre façon de faire serait l'interpolation :
    https://riptutorial.com/fr/php/examp...tion-de-chaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $name = 'Joel';
     
    // $name will be replaced with `Joel`
    echo "<p>Hello $name, Nice to see you.</p>";
    #                ↕
    #>   "<p>Hello Joel, Nice to see you.</p>"

  7. #7
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Citation Envoyé par fra340 Voir le message
    Cette requête fonctionne mais sans les variables.
    Et donc le problème se situe où ? Ce ne serait pas lors du passage des paramètres à la requête ?

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

Discussions similaires

  1. Problème dans un arrondi d'un select sum
    Par Eurydice de Marie dans le forum SQL
    Réponses: 0
    Dernier message: 22/03/2017, 18h36
  2. Problème quote array PHP / SQL lettres et chiffres
    Par Irokoi dans le forum Requêtes
    Réponses: 1
    Dernier message: 18/03/2014, 09h29
  3. [SQL Serveur 2000] - Problème QUOTED-IDENTIFIER
    Par Silvia12 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/06/2007, 14h17
  4. Problème quotes
    Par Anduriel dans le forum Langage
    Réponses: 6
    Dernier message: 16/11/2005, 19h04

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