affichage selon date du jour

Eléphant du PHP | 335 Messages

24 mai 2005, 13:55

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

Mammouth du PHP | 19672 Messages

24 mai 2005, 14:35

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 335 Messages

24 mai 2005, 14:54

tu ajoutes ou non une clause WHERE mois < au mois en cours
comment faire pour dire "au mois en cours"?

Mammouth du PHP | 19672 Messages

24 mai 2005, 15:23

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
}
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
pjl
ViPHP | 2119 Messages

24 mai 2005, 15:41

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

Mammouth du PHP | 19672 Messages

24 mai 2005, 16:27

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é :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 mai 2005, 16:33

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:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 19672 Messages

24 mai 2005, 16:40

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 :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: