Page 1 sur 1

Problème "SELECT SUM" renvoie NULL

Posté : 23 nov. 2020, 15:26
par fra340
Bonjour,

Nouveau sur ce forum et débutant en php, j'essaie 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 : Tout sélectionner

$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'];

Re: Problème "SELECT SUM" renvoie NULL

Posté : 23 nov. 2020, 15:48
par @rthur
Fais un var_dump() de ta requête et teste là dans PHPmyadmin

Si le nom de ton client comporte une apostrophe, ça peut faire planter ta requête, il vaut mieux utiliser des requêtes préparées ou à minima quote()
https://www.php.net/manual/fr/pdo.prepare.php
https://www.php.net/manual/fr/pdo.quote.php

Re: Problème "SELECT SUM" renvoie NULL

Posté : 23 nov. 2020, 16:30
par fra340
Fais un var_dump() de ta requête et teste là dans PHPmyadmin

Si le nom de ton client comporte une apostrophe, ça peut faire planter ta requête, il vaut mieux utiliser des requêtes préparées ou à minima quote()
https://www.php.net/manual/fr/pdo.prepare.php
https://www.php.net/manual/fr/pdo.quote.php
Bonjour et merci d'avoir pris le temps de me lire et répondre.

déjà testé sur phpmyadmin ça fonctionne dans les meme conditions qu'en local

résultat de tests réalisés :

var_dump ($prenomNomClt) : string(15) "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" }

J'ai déjà essayé avec une requête préparée mais il devait forcément y avoir une ou des erreurs.

Je vais me repencher dessus.

Encore merci

François

Re: Problème "SELECT SUM" renvoie NULL

Posté : 23 nov. 2020, 16:52
par or 1
"SELECT SUM(montant_rev) AS totRevProClt FROM revenus WHERE beneficiaire_rev like '' AND pjt_id = '' AND categorie_rev = 1"
n'est pas ce qui est attendu.

Re: Problème "SELECT SUM" renvoie NULL

Posté : 23 nov. 2020, 16:59
par fra340
"SELECT SUM(montant_rev) AS totRevProClt FROM revenus WHERE beneficiaire_rev like '' AND pjt_id = '' AND categorie_rev = 1"
n'est pas ce qui est attendu.
Bonjour et merci d'avoir pris le temps de me répondre.

Non, évidemment, j'ai vu que ça ne renvoyait rien en faisant un var_dump.
Et pourtant en faisant un var_dump de $prenomNomClt et $numpjt ça me renvoie bien les données attendues

Re: Problème "SELECT SUM" renvoie NULL

Posté : 23 nov. 2020, 18:02
par fra340
Tout d'abord, un grand merci à @rthur et or1 pour avoir bien voulu vous pencher sur mon problème et m'accorder de votre temps.
J'ai résolu le problème en tâtonnant au fur et à mesure.
J'ai juste déclarer mes variable $prenomNomClt et $numpjt avant ma requête.
C'est aussi en faisant des erreurs que l'on apprend.

Cela dit, je vais quand m^me essayer de suivre les conseils d'@rthur et de modifier ça en requête préparée.

Encore merci
François