Help ! Erreur de syntaxe impossible à trouver

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Help ! Erreur de syntaxe impossible à trouver

par ouckileou » 28 mars 2006, 16:13

Résolu alors ? :)

par dmx-moteur » 28 mars 2006, 15:13

J'ai trouvé : il faut faire une jointure !! Je suis un peu à la ramasse aujourd'hui ! ;-)
L'info se trouve ici : http://dev.mysql.com/doc/refman/5.0/fr/ ... eries.html

par dmx-moteur » 28 mars 2006, 15:01

Ma version de MySQL est 4.0.15. Merci Zeus et Ouckiléou : effectivement ça ne sert à rien de m'escrimer sur ce problème, si c'est tout simplement une histoire de compatibilité de version avec les sous-requêtes...

En regardant ma requete, il me semble impossible que l'erreur soit en plein milieu du nom de ma colonne.

Je dois dire que je ne suis modérément à l'aise avec le SQL. Existe-t-il un équivalent à ma requête sans utiliser de sous-requête...

Re: Help ! Erreur de syntaxe impossible à trouver

par zeus » 28 mars 2006, 09:58

Il y a une astuce pour lire les messages d'erreur MySQL : le code SQL affiché commence à l'erreur détectée. Tu sais donc que ton erreur se situe juste avant ta sous-requete.

Code : Tout sélectionner

Erreur de syntaxe près de 'SELECT code_client FROM web WHERE type LIKE %,7,% AND speciali' à la ligne 1
Ensuite, comme le laisse entendre Ouckileou, les sous-requete ne sont pas gérées par toutes les versions de MySQL, ce qui explique très probablement ton problème ...

par ouckileou » 28 mars 2006, 08:41

Quelle est la version de MySQL utilisée ?

par dmx-moteur » 27 mars 2006, 17:36

J'ai mis les quotes et affiché le SQL comme conseillé mais cela ne m'avance pas plus (attention j'ai changé l'ordre des facteurs pour voir !) :

Code : Tout sélectionner

SELECT * FROM clients WHERE clients.code_client IN (SELECT code_client FROM web WHERE fidelite=1 AND type LIKE '%,7,%' AND specialite LIKE '%,1,%') Erreur de syntaxe près de 'SELECT code_client FROM web WHERE fidelite=1 AND type LIKE '' à la ligne 1
Je me demande si ce n'est pas la premiere partie de ma requête qui cloche :

Code : Tout sélectionner

SELECT * FROM clients WHERE clients.code_client IN ...
En attendant, je trouve que le debug du SQL laisse plutôt à désirer dans le couple PHP/MySQL !!

par ouckileou » 27 mars 2006, 17:28

Commence déjà par afficher le SQL généré
echo $strSQL;
Il doit manquer des quotes autour de la valeur du LIKE :

Code : Tout sélectionner

LIKE '%,7,%'

Help ! Erreur de syntaxe impossible à trouver

par dmx-moteur » 27 mars 2006, 17:26

Bonjour,

Je m'arrache les cheveux depuis une heure mais je n'arrive pas à trouver où ma syntaxe pêche :

Code : Tout sélectionner

$strSQL= "SELECT * FROM clients WHERE clients.code_client IN (SELECT code_client FROM web WHERE type LIKE %,". $_POST['type'] . ",% AND specialite LIKE %,".$_POST['specialite'].",% AND fidelite=".$_POST['fidelite'].")";
Message d'erreur quand je teste sur une requête lambda :

Erreur de syntaxe près de 'SELECT code_client FROM web WHERE type LIKE %,7,% AND speciali' à la ligne 1

Quelqu'un a-t-il de meilleurs yeux que les miens !! ??

Merci par avance.