Vous n'avez rien compris à mon titre et c'est normal.
Je suis en train de créer un calendrier en PHP. J'ai réussi à créer une structure qui me semble pas trop mal.
Je vous mettrai mon code en fin mais là n'est pas le plus important.
J'ai une table users. Dans laquelle il y a plusieurs champs dont : `id`,`agenda`.
Je veux dans chacune des cases `agenda` on retrouve la totalité du calendrier sous cette forme :
Code : Tout sélectionner
2021 [
1 [
1 => 'valeur du premier jour',
2 => 'valeur du deuxieme jour',
3 => 'valeur du troisieme jour',
4 => 'valeur du quatrieme jour',
etc...
],
2 [
1 => 'valeur du premier jour',
2 => 'valeur du deuxieme jour',
3 => 'valeur du troisieme jour',
4 => 'valeur du quatrieme jour',
etc...],
3 [],
4 [],
5 [],
6 [],
7 [],
8 [],
9 [],
10 [],
11 [],
12 []
]
Code : Tout sélectionner
<?php
$annee = 2021;
for ($i = 1, $i <= 12, $i++){
$mois = mktime(0,0,0,$i,date("d",time()),$annee);
// J'ai réussi à coder une fonction qui détermine automatiquement le nombre de jours dans le mois etc je vous la skip pour plus de clarté. Je me retrouve avec un while qui va correspondre à linterieur de lui-même au jour en question
while ():
agenda($id_utilisateur, $annee, $i, $mois);
endwhile;
}
// je vous présente donc maintenant ma fonction agenda()
function agenda($id_utilisateur,$annee,$i,$mois){
//idem je vous masque toute la fonction pour plus de clarté, mais on se retrouve avec ce meme while qui, dedans, nous sommes sur le jour J sous la forme d'un timestamp.
// actuellement, j'ai stocké sous forme de string la totalité du tableau pour ensuite faire des explode. Ce n'est pas la bonne manière et c'est ce pourquoi je vous demande de l'aide.
contenu dans la base de données :
2021!1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;3,,,,,,,,,,,,,,,,,,,,,;4;5;6;7;8;9;10;11;12,2022!1;etc....
// chaque année est séparéé par un ' ! '
// chaque mois est séparé par un ' ; '
// le contenu de chaque jour est séparé par une ' , '
// spoiler alert : ça marche pas
while () {
$jour_j = mktime(0,0,0,$i,$z,$annee);
// Je vais chercher le champs agenda dans ma table users
$req = $GLOBALS['bdd']->prepare("SELECT agenda FROM `users` WHERE `id`='".$id_utilisateur."'");
$req->execute();
$data = $req->fetch(PDO::FETCH_OBJ);
$tableau_annee = explode('!', $data->agenda_p4);
$tableau_mois = explode(',', $tableau_annee[$i]);
$tableau_jour = explode(';', $tableau_mois[$i]);
$strdd = strftime("%e",$jour_j_1)-1;
// j'arrive à afficher les valeurs de la journée, mais ce n'est pas automatique..
// avec ce <input> je dois en live pouvoir modifier la case en question dans ma string.
echo '<td class="bg-'.$bg.' text-'.$color.'">
<input class="editation_agenda" data-annee="'.$annee.'" data-mois="'.$tableau_jour[$i].'" data-jour="'.$z.'" value="'.$tableau_jour[strftime("%e",$jour_j_1)-1].'">
';
// print_r($tableau_jour);
echo '</td>';
$z++;
}
}
?>
Je vous remercie grandement par avance !!