[RESOLU] Il y a une erreur dans ma requête SQL quand j'utilise SUM() ?

Eléphant du PHP | 198 Messages

09 déc. 2017, 13:27

Bonjour, j'ai une requête SQL préparée avec jointure et je souhaiterais calculer des totaux grâce à un SUM() mais il doit y avoir une erreur d'écriture car cela créé une erreur Undefined variable: total_frais_port, Pouvez-vous me venir en aide svp ?

Voici ma requête :

$sql_prestations = $bdd->prepare("
							SELECT
								A.numero_commande AS numero_commande,
								DATE_FORMAT(A.date_commande, '%d/%m/%Y') AS date_commande,
								A.frais_port AS frais_port,
								SUM(A.frais_port) AS total_frais_port,
								A.prixtotal AS prixtotal,
								B.numero_commande_revendeur AS numero_commande_revendeur,
								B.tva AS tva
							FROM commandes A
							JOIN revendeur B
							ON A.numero_commande = B.numero_commande
							WHERE A.boutique = :boutique
							AND YEAR(date_commande) = :annee_selection
							AND MONTH(date_commande) = :mois_selection
							ORDER BY A.date_commande DESC
							");
$sql_prestations->execute(array(
							'boutique' => 'revendeur',
							'annee_selection' => $annee_selection,
							'mois_selection' => $mois_selection
							));
$sql_prestations->setFetchMode(PDO::FETCH_ASSOC);

		
while($prestations = $sql_prestations->fetch()) {
     echo round($total_frais_port, 2) . ' €';
}
Cadeaux personnalisés d'après photos, gravure...
http://www.cadeauxplaisir.com/

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7432 Messages

09 déc. 2017, 13:32

Ta variable $total_frais_port n'est définie nulle part.

Si tu doutes de ta requête SQL, teste là dans PHPmyadmin, c'est la meilleure façon de débuguer.
Mais quoiqu'il arrive ta variable n'est définie nulle part donc le message d'erreur est normal, fait un var_dump() de $prestations pour voir ce qu'il y a dedans
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 198 Messages

09 déc. 2017, 14:05

Merci pour ton aide, en fait le problème est que mon while n'affiche qu'un seul résultat (alors qu'il y en a beaucoup plus) uniquement lorsque j'ajoute la ligne SUM(A.frais_port) AS total_frais_port, je te prie de m'excuser je pensai que l'erreur Undefined était lié à l'affichage.
Je pense donc à une erreur dans l'écriture de ma requête, ou peut être que simplement il n'est pas possible d'afficher plusieurs résultats à partir du moment ou on utilise SUM() ?
Cadeaux personnalisés d'après photos, gravure...
http://www.cadeauxplaisir.com/

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7432 Messages

09 déc. 2017, 20:08

Teste ta requête dans PHPmyadmin, tu verras précisément combien de lignes de résultats sont renvoyés et ça te permettra de debuguer ta requête le cas échéant sans interférence avec ton code PHP.

Vu la taille de ta requête et sa complexité, c'est compliqué de te dire ce qui pourrait bloquer il faut vraiment que tu avances de ton côté étape par étapeg pour voir à quel niveau ça coince
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 1329 Messages

11 déc. 2017, 15:37

A vue d'oeil il te manque une clause GROUP BY, sinon ta requète va faire la somme de toute tes lignes et donc forcement en retourner qu'une
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie

Eléphant du PHP | 198 Messages

22 déc. 2017, 16:46

Ah d'accord merci beaucoup !
Cadeaux personnalisés d'après photos, gravure...
http://www.cadeauxplaisir.com/