Page 1 sur 1

Erreur de syntaxe sql

Posté : 25 févr. 2009, 15:46
par Arkonara
bonjour a tous,
je pense avoir une erreur de syntaxe dans cette requete pouvez-vous me dire laquel car je ne le trouve pas
$resultat=mysql_query("SELECT * FROM incidents WHERE date_icdt >= mktime(0,0,0, date("m")-1,01,date("Y"))";
Merci

Posté : 25 févr. 2009, 15:53
par Aureusms
Avant que tu fasses reprendre par les modos, les mot URGENT vont te faire bouler rapidement. Je pense que pour cette fois tu es prévenu.
Sinon ta requête doit être en mode texte : le plus simple créé une variable temporaire pour éviter les erreurs de parenthèse.
$date_temp = mktime(0,0,0, date("m")-1,01,date("Y"));
$resultat=mysql_query("SELECT * FROM incidents WHERE date_icdt >= '$date_temp'");

Posté : 25 févr. 2009, 15:54
par @rthur
Les erreurs de guillemets, de parenthèses et de mélange de fonctions PHP et MySQL, tout ça dans une seule ligne de code, c'est interdit dans le forum PHP avancé ;)

Posté : 25 févr. 2009, 16:01
par Arkonara
oups les modos vont me faire ma fete quel con

en tout cas merci quand meme aureusms pour ta reponse qui semblerait etre la bonne, il faut que je teste un peu plus profondement sa maintenant

merci quand meme

ps: pour les modos dsl pour le urgent

Il semblerais qu'il y ait un problem puisque que lorsque j'effectue un echo sur la varaible $date_temp voila ce qu'il maffiche "1230764400".

Posté : 25 févr. 2009, 17:03
par Calimero
Il semblerais qu'il y ait un problem puisque que lorsque j'effectue un echo sur la varaible $date_temp voila ce qu'il maffiche "1230764400".
Il faut formater ta date dans le format utilisé par ton serveur MySQL pour cette colonne (que nous ne pouvons pas deviner). Pour faire ça il faut regarder du côté de la fonction date() de PHP avec ses différents paramètres.

Posté : 26 févr. 2009, 00:15
par x@v
à l'avenir faudra penser :
echo $resultat;
pour le samu tu composes le 15, ou t'apelle les pompiers, des beaux gars musclés c'est toujours rassurant, 18.

Posté : 26 févr. 2009, 16:07
par Aureusms
à l'avenir faudra penser :
echo $resultat;
pour le samu tu composes le 15, ou t'apelle les pompiers, des beaux gars musclés c'est toujours rassurant, 18.
Ou Chuck Nurris :wink:

Posté : 26 févr. 2009, 17:34
par Invité
voici la solution

$date_temp = mktime(0,0,0, date("m")-1, 1, date("Y"));
$date=strftime ('%Y-%m-%d', $date_temp); //Ici j' obtient une date du type "2009-02-25"
$resultat=mysql_query("SELECT * FROM incidents WHERE date_icdt >='$date'");

Et merci a vous pour les proposition

Posté : 26 févr. 2009, 20:06
par Ryle
Tu as aussi la version tout SQL :)

Code : Tout sélectionner

SELECT * FROM incidents WHERE date_icdt >= DATE_SUB(NOW(), INTERVAL 1 MONTH)
Voir la FAQ pour plus d'infos sur la manipulation des dates avec php et mysql :)