Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/12/2010, 17h42   #1
Membre à l'essai
 
Inscription : mars 2010
Messages : 213
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 213
Points : 23
Points : 23
Par défaut Erreur syntaxe dans sql

Bonjour,

Je veux savoir ou est l'erreur dans ce code qui est dans la plupart des cas en relation avec la syntaxe sql et voici le code:

Code :
1
2
3
4
5
6
7
8
 $result = $table->fetchRow('
  SELECT vente.*, mesure.*, client.* 
  FROM vente, mesure, client 
  WHERE   vente.categorie_v = 'monture' 
    and   mesure.id_cli = client.id_cli 
    and client.id_cli = vente.id_cli 
    and id_cli ='.$id_cli
);
Et merci d'avance.
king_soft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 23h27   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Comme tu écris ta requête dans une chaîne de caractères délimitée par des apostrophes, si tu mets à l'intérieur une valeur texte entourée elle aussi avec des apostrophes, ça interrompt la chaîne de la requête !

Maintenant, quelques remarques sur ta requête :
1) Les jointures normalisées s'écrivent depuis 1992 avec l'opérateur JOIN.

2) Si tu avais indenté ton code, comme je l'ai fait pour toi, peut-être aurais-tu vu ton erreur !

3) Pour simplifier l'écriture de la requête, utilise des alias et préfixe toutes les colonnes avec ces alias.

Voici ton code récrit correctement :
Code :
1
2
3
4
5
6
7
8
$result = $table->fetchRow("
  SELECT les_colonnes_necessaires_et_pas_etoile 
  FROM client c
  INNER JOIN mesure m ON m.id_cli = c.id_cli
  INNER JOIN vente v ON c.id_cli = v.id_cli
  WHERE v.categorie_v = 'monture'
    AND c.id_cli = ".$id_cli
);
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h20.


 
 
 
 
Partenaires

Hébergement Web