Erreur SQL syntax

silverbeach
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 333
Inscription: 20 Juil 2005

Erreur SQL syntax

Message le Lun Déc 13, 2010 11:35

Bonjour,
J'ai un problème avec une requête:
Code: Tout sélectionner
$sql1 = "SELECT $tab_mem.pseudo, $tab_mem.id_membre, $tab_mem.email, $tab_ch.choix, $tab_ch.id_annonce, $tab_ch.nom FROM $tab_ch LEFT JOIN $tab_mem on $tab_ch.id_pseudo = $tab_mem.id_membre WHERE (DATE($tab_ch.date_aj)=SUBDATE(CURDATE(),INTERVAL 5 DAY)) and ($tab_ch.val_an='1' OR $tab_ch.val_an='2' OR $tab_ch.val_an='5')";

Pour info, $tab_ch = chien_chien

J'ai comme réponse :
1064 / You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(chien_chien.date_aj)=SUBDATE(CURDATE(),INTERVAL 5 DAY)) and (c

La partie qui pose problème vient de :
Code: Tout sélectionner
WHERE (DATE($tab_ch.date_aj)=SUBDATE(CURDATE(),INTERVAL 5 DAY))


Or cette même requête fonctionne sur un autre site (j'ai fais un copier coller) et la structure de la table est identique

D'où peut venir le problème?

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: Erreur SQL syntax

Message le Lun Déc 13, 2010 12:35

Je doute un peu que le problème vienne de là, mais quelle est la version du serveur mysql concerné?

Sinon il serait utile d'essayer d'isoler plus précisément le problème en simplifiant le select jusqu'à ce qu'il n'y ait plus d'erreurs (i.e. tu enlèves un petit bout à chaque fois, même si ça ne fait pas grand sens, juste pour isoler l'erreur exacte).

Jacques.

silverbeach
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 333
Inscription: 20 Juil 2005

Re: Erreur SQL syntax

Message le Lun Déc 13, 2010 13:46

La version du serveur qui pose problème : 4
Celui qui fonctionne : 5

Donc le problème viendrait de la version de mysql

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: Erreur SQL syntax

Message le Lun Déc 13, 2010 14:16

Probablement. La syntaxe de date() que tu utilises n'a été ajoutée qu'à partir de la 4.1.1 d'après la doc:

http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html#fu ... ction_date

Tu peux essayer avec un cast(time as date) peut-être? Ceci dit, un petit upgrade de mysql serait probablement une bonne idée..

Jacques.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité