Bonjour

Voilà j'ai un fichier PHP, avec une requête SQL pour afficher la liste de ma table users.
Je voudrais pouvoir les affichers par tranche d'âges ( de 16 ans à 25 ans ou de 18 ans à 30 ans) avec un filtre, mais le problème c'est que dans ma table l'année de naissance est sous cette forme " 2001-06-05 " , alors que dans mes filtres j'envoie la tranche d'âge sous formes " 15 ans, 20 ans ou 26 ans ".

Comment je peux faire ma requête Sql ?

Merci

2 réponses


Salut, Laurent...

Bizarres tes tranches, elles se 'chevauchent'... ?!?

Mais bah... Si tu devais le faire "à la main," tu ferais quoi...?

1 ) Déterminer les dates qui correspondent aux limites de la 1ère tranche,

2 ) Test pour voir si le cas correspond ( = Ton filtre rentre dans cette fourchette de dates)

3 ) Re 1) et 2) sinon, bien-sûr avec les dates qui correspondent cette fois à ta 2ème tranche.

Donc, une ch'tite fonction qui te retourne ces bornes, pour la date courante (Qui est certainement celle de la requête), et ton test pour voir si la date corrrespondant à ton filtre est bien dans ces bornes... Ou pas !

Et donc, ton format de date est parfaitement adapté pour faire cela aisément :-) !

;-)

Tu peux filtrer relativement facilement avec une requête SQL:
SELECT [...] WHERE date BETWEEN DATE_SUB(NOW(), INTERVAL :année1 YEAR) AND DATE_SUB(NOW(), INTERVAL :année2 YEAR)

Si tu veux filter entre 16 et 25 ans donera:
SELECT [...] WHERE date BETWEEN DATE_SUB(NOW(), INTERVAL 16 YEAR) AND DATE_SUB(NOW(), INTERVAL 25 YEAR)

J'espère que ça te donne une piste :)