Problème Requète SQL

Résolu/Fermé
vivienneault Messages postés 20 Date d'inscription samedi 8 janvier 2011 Statut Membre Dernière intervention 20 mai 2015 - 14 mars 2013 à 10:16
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 - 14 mars 2013 à 11:11
Bonjour,

J'ai un petit soucis avec une requète SQL, en effet c'elle ci ne me renvoi que 1 tuple alors que le résultat devrait contenir plusieurs lignes :

SELECT Nom, Adresse, email, nb_vente, SUM( Prix_va ) as ca FROM client, vente, ventearticle WHERE client.ID = vente.ID_client AND vente.ID = ventearticle.ID_vente AND fidele = $_POST[fidele] AND ID_societe_v = $_POST[magasin] AND nb_vente !=0


Plusieurs clients sont censé sortir et pourtant non ...
Une bourde de ma part ?

Merci d'avance

5 réponses

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
14 mars 2013 à 10:17
Bonjour

$_POST['valeur']

quelle est la chaine de caractère entière ? avec les délimiteurs.
0
vivienneault Messages postés 20 Date d'inscription samedi 8 janvier 2011 Statut Membre Dernière intervention 20 mai 2015 1
14 mars 2013 à 10:20
$_POST[fidele] et $_POST[magasin] sont des entiers, la requète ne comporte pas d'erreur de syntax sql c'est juste le résultat qui me semble louche
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
14 mars 2013 à 10:31
$_POST['fidele'] et $_POST['magasin']

C'est toi qui a besoin d'aide non ? Pourquoi refuser de donner les infos que je demande ? j'ai un peu de mal à saisir la logique.
0
Utilisateur anonyme
14 mars 2013 à 10:36
La logique, c'est que s'il y avait une erreur à ce niveau là, il y aurait une erreur de syntaxe détectée par mySQL, ce qui n'est pas le cas.
Elle n'a rien refusé, elle t'a expliqué pourquoi ta remarque ne lui semblait pas expliquer son problème et je partage son analyse.
0
Normal que tu aies une seule réponse avec un SUM dans la requête.
Il faut préciser un GROUP BY Nom si tu veux faire ta somme pour chaque client séparément.
Ou GROUP BY client.ID plutôt
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
14 mars 2013 à 10:38
Du coup, hôte moi d'un doute, les quotes sur l'index $_POST['fidele'] sont obligatoires, non ?
0
vivienneault Messages postés 20 Date d'inscription samedi 8 janvier 2011 Statut Membre Dernière intervention 20 mai 2015 1
14 mars 2013 à 10:46
Et bien non, ici mettre des quotes aurait même provoquer une erreur :

On peut soit mettre :
"SELECT * FROM client WHERE fidele = $_POST[fidele]"


ou
"SELECT * FROM client WHERE fidele = ".$_POST['fidele']
0
Utilisateur anonyme
14 mars 2013 à 10:59
C'est même une erreur à coup sûr.
il NE FAUT PAS d'apostrophes autour d'un index de tableau à l'intérieur d'une chaîne entre double quotes.
Sauf si on utilise l'écriture de variable entre accolades, mais je crois bien que je n'en ai jamais vu d'exemples dans toutes les questions postées sur CCM.
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
14 mars 2013 à 11:01
sauf en concaténant la chaine.
0
Utilisateur anonyme
14 mars 2013 à 11:10
Si tu concatènes ta chaîne, ta variable n'est plus entre doubles quotes. La règle dont nous parlons concerne les variables tableau à l'intérieur d'une chaîne entre doubles quotes.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vivienneault Messages postés 20 Date d'inscription samedi 8 janvier 2011 Statut Membre Dernière intervention 20 mai 2015 1
14 mars 2013 à 10:34
Merci le père c'est exactement ça, encore une fois tu m'es d'une grande utilité.
TheBishop merci également d'avoir prit le temps de me répondre, je n'avais pas comprit ta question, ce n'était pas de la mauvaise volonté.

A bientot
0