tri sur le mois dans un champ date

binjo2
Invité n'ayant pas de compte PHPfrance

10 janv. 2013, 10:08

bonjour à tous,

j'ai un site de petites annonces sur lequel j'ai plus de 7000 annonces.
j'ai installé plusieurs filtres pour améliorer la recherche, dont un tri par année.

mais voilà, je souhaiterai, en page d'accueil de la recherche par date, ne faire apparaitre que les annonces de moins de 3 mois.

j'ai cherché à utiliser MONTH(date_annonce) mais je n'arrive pas à faire d'opérations entre ces dates et le mois en cours.

mon idée est d'avoir un tri du genre SELECT * FROM base WHERE MONTH(date_annonce)-[mois en cours]<4

merci d'avance !!!

ViPHP
xTG
ViPHP | 7331 Messages

10 janv. 2013, 10:40

Pour avoir le mois en cours :
MONTH(NOW())
Mais attention, il faut aussi vérifier l'année, sinon tu risques d'avoir les mois des années précédents. :)

Mammouth du PHP | 571 Messages

10 janv. 2013, 11:09

bonjour,

tu peux utiliser cette syntaxe mysql:
SELECT * FROM ma_table
           WHERE TO_DAYS(NOW()) - TO_DAYS(date_annonce) <= 90;
cette requête extrait les enregistrements de moins de 3 mois(90 jours).

binjo2
Invité n'ayant pas de compte PHPfrance

10 janv. 2013, 11:18

=D>
Merci les gars, les deux fonctionnent parfaitement.

Mammouth du PHP | 571 Messages

10 janv. 2013, 11:37

de rien