|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : juin 2007 Messages : 18 ![]() |
Bonjour
j'ai un problème dans ma fonction, lorsque je teste la requête SQL, elle fonctionne correctement, mais dans ma fonction, rien ne s'affiche, pouvez-vous m'aider et me dire ce qui ne va pas ? Merci Code php :
|
||
|
|
00
|
|
|
#2 | ||
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : mars 2007 Messages : 274 ![]() |
Je l'aurais écrit comme ca :
( mettre la requête dans un variable fait un peu plus propre je trouve ) Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 18 ![]() |
Ca n'affiche toujours rien,
j'ai décommenter //echo $query, j'obtiens ça : SELECT avg( a.delai ) FROM ( SELECT id, category, DATEDIFF( closedate, date ) AS delai FROM glpi_tracking WHERE ( date BETWEEN "2006-12-01%" AND "2006-12-01%" ) AND ( STATUS = "old_done" AND category = "6" ) ) AS a GROUP BY category |
|
|
00
|
|
|
#4 |
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 686 ![]() |
salut
En plaçant un mysql_error sur l'execution de la requête, ça renvoie quelque chose ? Code php :
$sql = mysql_query($query) or die (" erreur : ".mysql_error()); edit : koo
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
|
|
00
|
|
|
#5 | ||||
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Remplaces ca :
Code :
Code :
Sinon, tu es sur que SELECT * FROM ( autre requete) est valable en SQL ? Dans mes lointains souvenirs il fallait utiliser IN pour utiliser des requetes imbriquées (mais ca a peut etre changé depuis, je demande au cas où). EDIT : Celira ^^, grillé again!
|
||||
|
|
00
|
|
|
#6 | |||||
|
Invité de passage
![]() Inscription : juin 2007 Messages : 18 ![]() |
Citation:
|
|||||
|
|
00
|
|
|
#7 | |
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : mars 2007 Messages : 274 ![]() |
Citation:
Et si tu as la possibilité de lancer la requête sql avec un phpmyadmin ( ou par un autre moyen ) pour voir ce qu'il peut en ressortir. |
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Ca veut dire que ta requete est bien formée du point de vue de SQL. Par contre je viens de m'apercevoir que tu utilises BETWEEN en SQL avec des % dans la valeur. Les % sont utilisés pour le LIKE, il ne faut pas les mettre pour le BETWEEN a mon avis c'est pour ca que tu n'as aucun résultat qui revient de ta requête, et ca me surprend qu'elle marche dans ton phpmyAdmin ou autre frontal SQL.
en plus pourquoi passer par un FROM() au lieu de ca: Code :
SELECT id, category, AVG(DATEDIFF( closedate, date )) AS delai FROM glpi_tracking WHERE ( date BETWEEN "2006-12-01%" AND "2006-12-01%" ) AND ( STATUS = "old_done" AND category = "6" ) ) AS a GROUP BY category |
|
|
00
|
|
|
#9 | |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 18 ![]() |
Citation:
|
|
|
|
00
|
|
|
#10 | |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 18 ![]() |
Citation:
|
|
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Ben rien, tu mets pas de % pour un between!
J'aurai fait ca clairement moi: Code :
SELECT id, category, AVG(DATEDIFF( closedate, date )) AS delai FROM glpi_tracking WHERE date >= "2006-12-01" AND date <= "2006-12-01" AND STATUS = "old_done" AND category = "6" GROUP BY category Est-ce toujours le cas? |
|
|
00
|
|
|
#12 | |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 18 ![]() |
Citation:
et je n'ai pas envi de demander aux gens de taper l'heure |
|
|
|
00
|
|
|
#13 | |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 18 ![]() |
Citation:
|
|
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Dans ce cas ma requete marcherait, mais dans tous les cas, voila une modif qui fonctionnerait pour le cas où la date de début est la meme que la date de fin :
Code :
SELECT id, category, AVG(DATEDIFF( closedate, date )) AS delai FROM glpi_tracking WHERE DATE_FORMAT(date,'%Y-%m-%d') >= "2006-12-01" AND DATE_FORMAT(date,'%Y-%m-%d') <= "2006-12-01" AND STATUS = "old_done" AND category = "6" GROUP BY category |
|
|
00
|
|
|
#15 |
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : mars 2007 Messages : 274 ![]() |
Chose très bête, tu te connectes bien à mysql avant de lancer ta fonction ? (Je me permet de te poser la question car parfois ca m'arrive de l'oublier
)
|
|
|
00
|
|
|
#16 | |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 18 ![]() |
Citation:
|
|
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Est ce que tu as testé la simplification de la requete et l'utilisation du DATE_FORMAT() comme dit dans mon message précédent?
|
|
|
00
|
|
|
#18 | |||
|
Invité de passage
![]() Inscription : juin 2007 Messages : 18 ![]() |
Citation:
Voici ma fonction complète Code :
|
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com