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:
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 select * from phpads_adstats WHERE day = NOW() AND hour = HOUR(NOW()) AND bannerid = '28' AND zoneid = '2' and source=''
(je parle évidemment à l'heure courante mais le problème se pose quelque soit le day et hour de toutes facons).
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 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='').
et elle me retourne bien le tuple désiré :
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'
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
1
2 views clicks day hour bannerid zoneid source 1 0 2008-03-21 17 28 2
et cette requete me retourne le bon tuple a savoir :
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 là je retente:
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 je n'obtiens aucun résultat à ma requête...
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=''
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é
et mon tuple est retourné....
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
Votre avis serait vraiment le bienvenu.
Merci d'avance.
EDIT: au cas ou, mysql tourne sous mysql-5.0.44-r2
Partager