Non non, tu complique encore une fois le problème.
pour les deux dates d'après ce que j'ai compris, tu n'as qu'à dire :
"j'ai une date de création de l'article et une date de réapprovisionnement"
Mais les deux sont au format date. Les dates doivent toujours être stocker comme des dates brutes.
C'est à ton programme (requêtes SQL) d'en diversifier l'utilisation et le format d'affichage en utilisant des fonction spécialisées comme day(), month(), year() et date_format()
Pour plus d'info :
http://www.nexen.net/docs/mysql/annotee ... ate_format
Alors, dans ton cas et si j'étais à ta place, je stockerais les date dans leurs état brut sous le type date.
Et quand par exemple j'ai besoin de remplir une nouvelle date de réapprovisionnement (disons Juillet) d'un article créé en Juin, en choisissant d'enter la date via des listes déroulante, je ferais ceci:
id_mois et id_année : deux listes déroulantes.
Quand l'utilisateur choisit un mois dans id_mois et une année id_année
Construire la date : "id_année/id_mois/01" et la stocker dans le champs "date" de article.
Code de l'exemple : (exige qu'un article est déja présent et que $ref_art est connue.
Code php
<form>
<input type=hidden name=ref_art value=
<? echo isset($ref_art)?
$ref_art:
null;
?>
<p>Choisir une date de réapprovisionnement
<p>Année
<select name=id_année>
<option value='0'></option>
<option value='2004'>2004</option>
<option value='2005'>2005</option>
...
</select>
<p>Mois
<select name=id_mois>
<option value='0'></option>
<option value='1'>Janvier</option>
<option value='2'>Février</option>
...
</select>
<p><input type=submit name=modifer_date value='Modifier date réappro.'>
</form>
<?
//Programme de modification de la date réappro.
//Réception valeurs sélectionnées dans les select (0 si rien)
$id_année =
isset($_GET["id_année"])?
$_GET["id_année"]:
0;
$id_mois=
isset($_GET["id_mois"])?
$_GET["id_mois"]:
0;
//Reception de la ref de l'article concerné par la modif
$ref_art =
isset($_GET["ref_art "])?
$_GET["ref_art "]:
null;
//si c'est l'action 'modifier_date' est déclenchée
//et si des valeurs correctes sont séléctionnées et qu'un article est en cours
if (isset($_GET["modifer_date"]) && $ref_art !=
null && $id_année
!= 0
&& $id_mois !=
0) {
//Quoi faire des valeurs reçu ? : Les stocker en mettant à jour la table article clé =$ref_art
$sql =
"UPDATE article SET date = '$id_année/$id_mois/01' WHERE ref='$ref_art' ";
mysql_query ($sql);
//exécuter l'update
}
Remarque: l'affichage affiche les noms des mois et des années mais mon programme manipule leurs id numériques et stocke la date sous le format date