PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 02-07-2009 01:36:59

Sha-ka
Client réputé
Inscription : 10-05-2009
Messages : 15

Calendrier un peu particulier

Bonsoir.
J'ai l'intention de créer un calendrier d'un type un peu particulier. J'ai un peu cherché sur le web sans trop y croire, mais je n'ai rien trouvé.
Je m'explique : en fait, j'y mettrais des évènements plus ou moins vieux (remontant jusqu'en 1700) sur des dates plus ou moins précises. Soit il n'y aura que l'année, soit le mois et l'année, ou alors le jour, le mois et l'année. Un truc du genre :

1700 : blabla
18 juin 1800 : bloblo
22 juin 1800 : blublu
aout 2000 : blibli

Seulement, bien que j'ai le résultat de l'affichage en tête, concernant la base de données, je suis un peu dans le flou... Comment gérer ça ? Un champ de type date peut réaliser ce genre de travail ? Et comment ? D'avance merci.

Hors ligne

#2 02-07-2009 08:15:47

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : Calendrier un peu particulier

Non mais c'est pas fini tes questions Al Acon ? C'est moi le spécialiste !! Alors stop le plagia wink wink

Là où cela demande un poil plus de précision :
- Comment souhaites-tu que l'événement soit représenté sur le calendrier ?
- Dans le cas du "1700", veux-tu que l'année entière soit "LIEN" vers l'événement ?
- Cas identique dans le cas du "aout 2000" ?


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#3 02-07-2009 10:54:08

Sha-ka
Client réputé
Inscription : 10-05-2009
Messages : 15

Re : Calendrier un peu particulier

Arf oui, sans préciser, difficile en effet. En fait, je parle de calendrier, mais ce n'en sera pas vraiment un. J'aimerais que ça n'affiche que les dates où il existe un évènement, un peu comme les billets d'un blog.

La page serait un peu comme ça donc :

1700

il n'y avait pas beaucoup de voiture à cette date.




18 juin 1800

Je n'étais pas encore né ce jour !




etc, enfin quelque chose du genre. Mais comme dit l'affichage n'est pas vraiment un problème, c'est surtout la gestion des dates qui me pose soucis, je ne sais pas si un champ de type date conviendrait.

Hors ligne

#4 02-07-2009 16:09:35

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Calendrier un peu particulier

Une solution simple mais sans doute non optimisée me vient à l'esprit.
Il s'agirait d'enregistrer l'année, le mois et le jour en tant que trois données ce qui te ferrait un affichage final en fonction de ses trois données.
Pour l'organisation de la table un ID ou bien par DATE (mais qui devient en quelque sorte redondant et pas forcemment très utile du fait qu'elle pourrait être incomplète).

En gros un schéma de ce genre :
| Clé Primaire | Date_Année | Date_Mois | Date_Jour | Évènement |

Hors ligne

#5 02-07-2009 17:50:12

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Calendrier un peu particulier

Saluton,
Pourquoi pas.
Je pense qu'en tout état de cause il te faut commencer par clarifier les critères de classement.
Dans quel ordre devraient apparaître ces 3 lignes ?
AAAA-MM-JJ
1770  01  12
1770  01 null
1770 null null


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#6 02-07-2009 23:11:48

Sha-ka
Client réputé
Inscription : 10-05-2009
Messages : 15

Re : Calendrier un peu particulier

Hellow hellow !
J'ai aussi pensé à enregistrer en 3 données, mais je me suis souvenu des dire de MJ qui m'avait engueulé parce que c'était du bidouillage.

Bref, l'ordre serait :

a) 1700 null null
b) 1700 01 null
c) 1700 01 12
d) 1700 03 20
e) 1700 04 null
f) 1701 null null

etc.

Hors ligne

#7 03-07-2009 07:32:04

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Calendrier un peu particulier

Puisque une donnée 1700nullnull ne pourra pas être sauvegardée dans une colonne de table de bd au format date, je te conseille d'avoir une colonne `an`de type YEAR, puisque, a minima, on connaît l'année, et une colonne `mj`de type unsigned int(4) qui prend par défaut la valeur 0000 correspondant à un mois et un jour inconnus.
Le ORDER BY an, mj peut ainsi s'appliquer dans le sens attendu.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#8 03-07-2009 10:29:59

Sha-ka
Client réputé
Inscription : 10-05-2009
Messages : 15

Re : Calendrier un peu particulier

Ok merci bien, je vais donc me baser là dessus !

Question : le format YEAR ne prend pas avant une certaine année ? En tentant d'entrer des années de type 1700, ça ne prend pas en compte, par contre j'ai testé pour 1950 et au delà, ça marche...

Dernière modification par Sha-ka (03-07-2009 11:25:05)

Hors ligne

Pied de page des forums