[RESOLU] comment gerer un plage de date sur phpmyadmin ?

Eléphanteau du PHP | 28 Messages

06 août 2017, 02:24

Bonjour
j'ai un fichier de données que je veux passer dans une table sql.
Je bloque juste sur un problème de date.
Chaque entrée a une durée sur l'année : par exemple le premier est du 21 au 25 mars, le 2eme du 26 au 30 mars etc ..
Donc je me demande si je fais 2 champs avec dans la premier la date de début et dans la 2eme une date de fin ou si je dois n'utiliser qu'un champ ?
Et savoir ce que je dois mettre dans valeur ?
Pour le moment j'ai :
nom |type |taille/valeur|interclassement|attribut
debut |date| | |
fin |date| | |
merci d'avance

Eléphanteau du PHP | 28 Messages

06 août 2017, 02:26

Ha j'oubliais, dans cette configuration je suis obliger de rentrer jj/mm/aaaa, mlais je ne veux rentrer que jj/mm est ce possible a faire ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

06 août 2017, 11:58

Bonjour,

La solution la plus optimale habituellement est d'utiliser des champs DATE de MySQL pour enregistrer la date de début d'un côté et la date de fin de l'autre.
L'avantage c'est que ça te permettra avec une simple requête SQL de rechercher tes enregistrements en indiquant les créneaux voulus directement dans ta requête, c'est + propre et + efficace.

En revanche pour ta 2ème question si tu n'auras pas les années, alors peut être que le mieux sera juste de prendre des champ INT et d'enregistrer tes dates aiu format mmdd.
J'inverse volontairement les jours et mois pour que tu puisse ensuite faire en SQL des recherches du genre date >= 1201 pour récupérer tous les enregistrements dont la date est après le 1er décembre
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 28 Messages

06 août 2017, 13:50

bonjour
déjà merci a toi pour la réponse.
Donc je vais être obliger d'utiliser la 2eme solution, car c'est pour une appli genre un horoscope donc je n'ai vraiment besoin que des plage de dates sans année. Je vais donc virer mes 2 champs date et les remplacer par des int décidément je ne vais connaitre que les int varchar et text lol
Merci encore