IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Problèmes executions requetes SQL


Sujet :

Requêtes MySQL

  1. #1
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut Problèmes executions requetes SQL
    Bonjour,
    Alors là, je vous présente un problème qui me fait tourner en rond depuis maintenant un moment.

    J'ai une requete qui ne s'execute pas pour je ne sais quelle raison. Cette requete provient d'un outil de gestion de banniere de pubs pour les sites web.
    J'ai identifié la requete qui pose problème et j'en ai fait un echo que voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from phpads_adstats WHERE day = NOW() AND hour = HOUR(NOW()) AND bannerid = '28' AND zoneid = '2' and source=''
    Cette requete retourne 0 résultat, hors, je devrais avoir cette ligne dans ma base en retour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     views  	 clicks  	 day  	 hour  	 bannerid  	 zoneid  	 source
       1 	             0 	     2008-03-21 17 	  28 	             2
    (je parle évidemment à l'heure courante mais le problème se pose quelque soit le day et hour de toutes facons).

    Je me suis donc mis a tester pour voir si il n'y avait pas de caractères cachés qui feraient planter ma requete.
    Je tape donc la requete (la meme sans la clause and source='').

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from phpads_adstats WHERE day = NOW() AND hour = HOUR(NOW()) AND bannerid = '28' AND zoneid = '2'
    et elle me retourne bien le tuple désiré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     views  	 clicks  	 day  	 hour  	 bannerid  	 zoneid  	 source
       1 	             0 	     2008-03-21 17 	  28 	             2
    Maintenant au lieu de retirer le source='' , je retire le zoneid='2' et j'obtiens la requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from phpads_adstats WHERE day = NOW() AND hour = HOUR(NOW()) AND bannerid = '28' AND source=''
    et cette requete me retourne le bon tuple a savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     views  	 clicks  	 day  	 hour  	 bannerid  	 zoneid  	 source
       1 	             0 	     2008-03-21 17 	  28 	             2
    Et là je retente:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from phpads_adstats WHERE day = NOW() AND hour = HOUR(NOW()) AND bannerid = '28' AND zoneid = '2' and source=''
    et je n'obtiens aucun résultat à ma requête...

    J'avoue là, je ne comprends absolument pas, si je refais la meme manip en jouant sur bannerid et zoneid par exemple (au lieu de source et zoneid), et j'ai les memes incohérences comme si le nombre de clauses where étaient en cause.

    j'ai donc essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from phpads_adstats WHERE day = NOW() AND hour = HOUR(NOW()) AND bannerid = '28' AND source='' and 1=1 and 1=1
    et mon tuple est retourné....

    Votre avis serait vraiment le bienvenu.

    Merci d'avance.

    EDIT: au cas ou, mysql tourne sous mysql-5.0.44-r2

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Bon en continuant a chercher, je me rends compte que c'est NOW() qui crée ce bug et je l'ai remplacé par CURDATE dans le script original et celà semble corriger le problème.

    Si quelqu'un peut m'expliquer, je suis preneur.

    Merci d'avance.

  3. #3
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    La réponse est très simple :
    - CURDATE te retourne un format de type date (YYYY-MM-DD)
    - NOW te retourne un format de type datetime (YYYY-MM-DD HH:MM:SS)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec requete SQL/type NumAuto
    Par Mimisio dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/07/2007, 11h56
  2. problème lancement requete sql
    Par skanderb dans le forum JSF
    Réponses: 4
    Dernier message: 02/05/2007, 16h46
  3. [WD 11] problème de requete SQL-LIKE
    Par fabpeden dans le forum WinDev
    Réponses: 5
    Dernier message: 24/04/2007, 17h07
  4. problème de requete SQL et recherche
    Par franfr57 dans le forum ASP
    Réponses: 1
    Dernier message: 16/03/2006, 13h33
  5. [ACCESS][SQL] Problème avec requete SQL ...
    Par mpascolo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/11/2005, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo