Page 1 sur 1

affichage selon date du jour

Posté : 24 mai 2005, 13:55
par Justone
Bonjour,

j'ai fait douzes requetes de ce type pour les douzes mois de l'année
$str_requete = "SELECT mois, SUM(sla) as nombre1 FROM sla WHERE annee=2005 GROUP BY mois HAVING mois LIKE '01'";
avec les douzes résultats j'ai fait un graphique en batons.

je voudrais savoir comment faire pour que les batons ne s'affiche qu'en fonction de la date d'aujourd'hui
par ex : on est le 24 mai alors il faudrait 4 batons (de janvier a avril) et qu'au 31 on est celui de mai, etc

dite le moi si je ne suis pas assez clair

Merci

Posté : 24 mai 2005, 14:35
par Cyrano
Primo, pourquoi douze requêtes ? une seule aurait suffi et avec le résultat retourné dans un tableau, tu fais une boucle en PHP pour générer chaque baton mensuel;

Ensuite, il suffirait de faire ta requête de façon dynamique pour limiter aux mois effectivement terminés avec une petite fonction PHP qui vérifie si on est le dernier jour du mois ou non: partant de là, tu ajoutes ou non une clause WHERE mois < au mois en cours

Résultat; un seul échange avec ta base de données pour le même résultat.

Posté : 24 mai 2005, 14:54
par Justone
tu ajoutes ou non une clause WHERE mois < au mois en cours
comment faire pour dire "au mois en cours"?

Posté : 24 mai 2005, 15:23
par Cyrano
Utilise la fonction date()

Il faut que tu le détermines avant la création de la requête:
$mois_en_cours = date("m");
par exemple
Il faut faire une petite fonction qui détermine la date du jour et vérifie si c'est le dernier jour du mois
Tu récupère la date du jour et le nombre de jours dans le mois :
$date_jour = date("d")
$nb_jrs_moins_encours = date("t")
if($date_jour < $nb_jrs_moins_encours)
{
    // ça veut dire qu'on est pas le dernier jour
}
else
{
    // On est le dernier jour du mois
}

Posté : 24 mai 2005, 15:41
par pjl
C'est un PB de SQL pas de PHP.

Voir les fonctions de date spécifiques au SQL comme month()

http://www.nexen.net/docs/mysql/annotee ... lien=month

Posté : 24 mai 2005, 16:27
par Cyrano
C'est bien intéressant la doc pjl, mais en aiguillant vers la solution, c'est préférable et la doc sert en appui aux explications le cas échéant: comment tu fais toi pour isoler le mois courant non terminé dans une requête SQL ?

Personnellement, je ne vois pas et c'est pour ça que je parle de créer dynamiquement une requête avec une clause spécifique où ce problème est résolu: la recherche ira d'autant plus vite. Si tu as plus rapide en SQL, je t'en prie, montre nous parce que j'avoue que je suis moi aussi fort intéressé :)

Posté : 24 mai 2005, 16:33
par zeus
Je te sens nerveux Cyrano !!!

C'est la suite de post agressifs qui te mettent dans cet état là ?

Allez, mon magohamoth à moi, viens me faire un calin, ça va te calmer !!!! :love4:

Non, pas sur les pieds, je te l'ai déjà dit 100 fois !!! :langue:

Posté : 24 mai 2005, 16:40
par Cyrano
ben non, c'est même pas de la nervosité: je suis bien sérieux, si il y a une solution en SQL, je suis particulièrement avide de savoir et j'aimerais la solution :)