Aller au contenu

[Newbie] Affichage par date


furious Gontran

Sujets conseillés

salut,

Je rentre des données dans ma base avec une date.

Celle ci contient un champs date.

Cette date a la forme annee-mois-jour dans la base.

Je voudrais afficher juste les entrées de ma base pour les deux derniers mois.

Est ce que je suis obligé de recuperer la date de toutes mes entrées de les exploder pour isoler le mois et le comparer au mois en cours ??

Ou existe t'il une maniere plus simple de faire ?

Lien vers le commentaire
Partager sur d’autres sites

Salut,

C'est tout simple !

Select * from `latable` where date > '2005-02-00'

te donnera les entrées pour février et mars 2005.

Essaie d'optimiser la requête pour éviter le "Select *" en mettant plutôt "Select champ1, champ2, champ3..."

Lien vers le commentaire
Partager sur d’autres sites

Encore une question...

pour determiner la date d'affichage je fais

$moisactuel=date("m");

$mois2=$moisactuel-1;

et je me sers de ce mois pour la requete, en ajoutant un if particulier pour le mois de janvier.

Cependant mois 2 perd son 0 pour tous les mois<10.

Ce qui me donnerais une requete du type:

Select * from `latable` where date > '2005-2-00'

L'absence de 0 peut elle poser probleme.

(Je prefere demander, je n'ais pas beaucoup de moyen de le tester a part une patience de quelques mois)

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

Remonte petit thread.

J'enregistre des dates dans un champ MySQL de type datetime incrémenté par date('Y-m-d H:i:s') et je voudrais afficher seulement les résultats pour ce mois. J'ai beau tâter et expérimenter je n'affiche qu'un message d'erreur me réclamant de prendre des cours afin d'écrire des requêtes correctes :lol:

Si quelqu'un pouvais me guider un peu, ce serait fort généreux.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je ne suis pas sur d'avoir compris :s c'est peut être ça:

SELECT * FROM `ta_table` WHERE MONTH(NOW()) = MONTH(`champ`)

Modifié par Boo2M0rs0
Lien vers le commentaire
Partager sur d’autres sites

Ça à l'air de fonctionner comme ça mais je ne peux pas tester plus à fond car je n'est même pas un mois de cumuler dans ma base.

Merci, Boo2M0rs0. Mais pourrais tu m'expliquer d'où tu sort month car après recherche je n'ai rien trouver en rapport avec PHP/MySQL, une doc ou autre ?

Modifié par lupucide
Lien vers le commentaire
Partager sur d’autres sites

Month() est une fonction mysql qui extrait le numéro du mois d'une date.

Donc dans ce cas , on regarde si le numéro de mois actuel ( month(now()) ) est égal au numéro de mois du champ ( month(`champ`) )

http://www.nexen.net/docs/mysql/annotee/da...e-functions.php

Par contre je me pose une question sur l'optimisation, est ce que mysql recalcule month(now()) pour chaque entrée à tester ? Si c'est le cas, il vaudrai mieux passer par la fonction date() de php:

$mois = date('m');
mysql_query("SELECT * FROM `ta_table` WHERE '$mois' = MONTH(`champ`)")

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...