cs_hdh
Messages postés140Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention20 août 2012
-
8 juil. 2005 à 08:03
cs_hdh
Messages postés140Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention20 août 2012
-
8 juil. 2005 à 21:03
Hello,
C'est une demande de conseils car je ne sais comment procéder :
J'ai un tableau dans lequel j'affiche des maintenances (son nom, son contenu et sa date)
... or la liste risquant d'être longue je voudrais afficher les items en fonction d'une fourchette de dates mensuelles (style 'n'afficher que les items ayant eu lieu pendant le mois d'aout 2004').
J'ai les dates max et dates min grace à cette requette
$requeteMin = "SELECT dt_fait from table order by dt_fait asc";
Ne voulant pas afficher les liens (lien pour chaque mois) en dure dans la page je suis à la recherche de la boucle, requette ou même poudre de perlinpimpin me permettant d'afficher cette &*/' listes de mois !!!
En esperant qu'une ame charitable se penchera sur ma question.... bonne journée à tous !!
au plaisir de vous lire... grand merci d'avance pour vos idées, pistes, solutions !
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 8 juil. 2005 à 09:31
Hello,
toi, t'en as dans le pantalon, pour avoir ose poster la premiere question apres le post de Sjón ;-)
J'ai un peu de mal ce matin, alors pardonne-moi si je reponds a cote de la plaque...
Tout depend de comment tu stockes tes dates. Dans un cas comme
celui-ci, je conseille vivement un champ de type date! Ensuite tu as
tout un tas de clauses mysql pour faire ce que tu veux : IN BETWEEN,
MONTH, YEAR, etc etc...
Une autre solution est simplement d'utiliser LIMIT pour afficher les 20
dernieres lignes par exemple (sans tenir compte du mois). Ou toutes,
mais 20 par 20 (avec une pagination quoi).
cs_hdh
Messages postés140Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention20 août 2012 8 juil. 2005 à 09:38
Hello,
Merci pour ta téponse !
la date est au format 0000-00-00
et le classement serait bien mensuel et pas par tranches de 20... pourrais tu me donner une exemple avec month.. ce serait une requete de quel style ??
en tout cas merci pour la doc... je potasse azap !!
...et pour ce qui est du pantalon ca va... mais ca n'a aucun rapport avec la question je pense !
;-) qui est ce mysterieux Sjón ??????????????????
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 8 juil. 2005 à 09:50
Regarde le post juste avant le tien ;-)
Bah je ne sais pas...
SELECT nom, contenu, date FROM tbl_maintenance WHERE MONTH (date) = '08'
Un truc dans le genre je suppose. Pour etre honnete je n'ai jamais utilise de requetes sur les dates (je veux dire, jamais avec une condition sur une date).
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 8 juil. 2005 à 12:14
Salut,
Si j'étais toi je stockerai mes dates au format INT avec la fonction time();
Lorsque le visiteur rentre une date, tu prends le mktime() de cette
date vu que le visiteur ne rentre pas la dates en secondes depuis le
1er janvier 1970 (sic) et tu génères ta requête en tenant compte de ce
mktime, et d'un autre mktime() correspondant à la deuxième date
butoire. ça sera largement plus simple puisque tu n'auras à manipuler
que des chiffres et pas de dates dans ta requête, et ça sera également
plus rapide.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 8 juil. 2005 à 12:27
Hmm,
plus rapide sans doute, plus simple...lol. Je doute. Les fonctions date de mysql sont tres simples et tres completes. Mais bon, apres c'est une affaire de gout, les deux solutions conviendront tres bien.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 8 juil. 2005 à 12:36
Bah l'avantage de cette solution est que si tu veux rechercher une date
qui comprend un mois et un jour par exemple le 02 août 2004 tu es
obligé de rajouter dans ta requête AND DAY()=02
ou un truc du genre tandis qu'avec les timestamp tu n'as pas ce souci,
ta requête reste unique, c'est plus simple à gérer au final ;-)
cs_hdh
Messages postés140Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention20 août 2012 8 juil. 2005 à 12:48
Hello,
SELECT nom, contenu, date FROM tbl_maintenance WHERE MONTH (date) = '08'
m'a l'air tout a fait bien ! mais je ne sais pas encore trop comment je vais me débrouiller avec !!*
Pour ce qui est de changer le format... étant donné que mon site fonctionne avec 0000-00-00 je prefere pas changer en cours de route !
en tt cas merci pr vos idées !!
H
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 8 juil. 2005 à 12:51
Oui enfin verifie la syntaxe hein lol...sur la page que je t'ai donnee. Et BETWEEN te permet de faire des...heu...des between lol. Entre deux dates, deux mois, deux annees etc...
cs_hdh
Messages postés140Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention20 août 2012 8 juil. 2005 à 21:03
Hello,
yahhahahhahhahh !! on touche au but !!
SELECT nom, contenu, date FROM tbl_maintenance WHERE MONTH (date) = '08'
fonctionne impec !
Reste un détail à finaliser avant de me présenter au Internet Site of The Year Awards : comment faire pour n'afficher que les liens mensuels entre les dates min et les dates max ??
un truc du style select distinct date from table group by month-year ????????
j'ai comme l'impression que le month-year n'est pas mysql compatible... me trompe je ???