Bonjour,
Je début avec MySQL et PHP, et je suis confronté à un gros problème pour la gestion de liens sur les dates dans un calendrier. Les dates correspondent à des évènements qui sont stockés dans une base MySQL.
En effet, j'ai trouvé une méthode, mais je ne parviens pas à l'appliquer.
J'ai une table (events) ; chaque enregistrement (évènement) a, entre autres, une date (event_date) et bien sûr un id. J'ai par ailleurs un script PHP qui affiche un calendrier d'un mois.
L'idée que j'avais trouvée sur internet était d'appliquer la procédure suivante :
1 - Rechercher dans la base les évènements pour le mois affiché par le calendrier ($m est le mois, $a l'année ; au moment où j'écris par exemple, $a = '2011', $m = '05').
2 - Créer un tableau dans lequel le jour de l'évènement est la clef.
3 - Au moment où le calendrier est créé, produire un affichage différent selon que le jour figure ou non en tant que clef dans le tableau.
En ce qui concerne le 1, j'y suis parvenu !
$resultat_mois = mysqli_query($lien, "SELECT * FROM events WHERE YEAR(event_date) = '$a' AND MONTH(event_date) = '$m' ORDER BY event_date");
C'est au 2 que les choses se corsent. Voici le "code d'exemple" que j'ai trouvé :
while($ligne=mysql_fetch_array(...)){
$evenement['le jour en question (un nombre de 1 a 31)']=$ligne[id de l'event];
}
J'ai bien sûr pensé remplacer les "..." par mon $resultat_mois :
while($ligne=mysql_fetch_array($resultat_mois)){
$evenement['le jour en question (un nombre de 1 a 31)']=$ligne['id'];
}
Mais à vrai dire, je bute vraiment sur cet endroit, je ne comprends pas bien, je n'arrive pas à obtenir la liste des id, je pense que je ne sais pas vraiment par quoi remplacer "le jour en question (un nombre de 1 a 31)"... J'ai essayé toutes sortes de choses improbables, et je crois vraiment que j'ai besoin d'un peu d'aide, là.
À titre indicatif, voici le code proposé pour le 3 :
/*
$i=name of day
$thePage=la page de destination
*/
if ($events[$i]) echo '<a href="'.$thePage.'?idEvent='.$events[$i].'">'.$i.'</a>';
else echo $i;
Merci d'avance à toute réponse qui pourra m'apporter un peu d'aide ! Je n'ai rien trouvé de vraiment concluant, et ça fait des heures que je planche sur le problème...