Bonjour,
j'essaye de créer un calendrier mais j'ai un petit souci au niveau de la récupération des événements à afficher dans mon calendrier.
Le calendrier s'affiche correctement, il n'y a aucun souci de ce côté-là.
En revanche, j'ai plusieurs événements qui devraient être marqués dans mon calendrier mais seul le premier est pris en compte ( celui avec l'id 1 ). Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
 
<?php
$req_recup_events = mysql_query('SELECT * FROM events');
$recup_events = mysql_fetch_assoc($req_recup_events);
$date_events = $recup_events['date'];
$date_format =  date('d-n-Y', $date_events);
$date = explode('-', $date_format);
 
// Boucle pour générer le calendrier
for($i=1;$i<40;$i++)
{
if($i < $premierdumois)
{	
if($jour == $date[0] && $mois == $date[1] && $annee == $date[2])
{
// Si la variable $jour correspond à l'événement d'aujourd'hui,
// la case est en lien
echo '<td class="calendrier_td_non_actif"><a href="#contenu"
class="info">'.$joursmoisavant.'</a></td>';
}
else
{
// Tant que la variable i ne correspond pas au premier jour du mois,
// on fait des cellules de tableau avec les derniers jours du mois précédent
echo '<td class="calendrier_td_non_actif">'.$joursmoisavant.'</td>';
}
$joursmoisavant++;
}
else
{
if($jour == date("d") && $mois == date("n"))
{
if($jour == $date[0] && $mois == $date[1] && $annee == $date[2])
{
// Si la variable $jour correspond à l'événement d'aujourd'hui,
// la case est en lien
echo '<td class="calendrier_td_aujourdhui"><a href="#contenu"
class="info">'.$jour.'</a></td>';
}
else
{
// Si la variable $jour correspond à la date d'aujourd'hui,
// la case est d'une couleur différente
echo '<td class="calendrier_td_aujourdhui">'.$jour.'</td>';
}
}
 
else
{
if($jour == $date[0] && $mois == $date[1] && $annee == $date[2])
{
// Si la variable $jour correspond à l'événement d'aujourd'hui,
// la case est en lien
echo '<td class="calendrier_td_actif"><a href="#contenu"
class="info">'.$jour.'<span>'.htmlspecialchars($recup_events['evenement'],
ENT_QUOTES).'</span></a></td>';
}
else
{
// Si la variable $jour correspond à la date d'aujourd'hui,
// la case est d'une couleur différente
echo '<td class="calendrier_td_actif">'.$jour.'</td>';
}
}
$jour++;	//On passe au lendemain
 
/*Si la variable $jour est plus élevée que le nombre de jours du mois,
c'est que c'est la fin du mois! 
On remplit les cases vides avec les premiers jours des mois suivants
Hop on ferme le tableau, 
et on met la variable $i à 41 pour sortir de la boucle */
if($jour > ($nbrjour[$mois])){
while($i % 7 != 0)
{
if($jour == $date[0] && $mois == $date[1] && $annee == $date[2])
{
// Si la variable $jour correspond à l'événement d'aujourd'hui,
// la case est en lien
echo '<td class="calendrier_td_non_actif"><a href="#contenu"
class="info">'.$jourmoissuivant.'</a></td>';
}
else
{
// Tant que la variable i ne correspond pas au premier jour du mois,
// on fait des cellules de tableau avec les derniers jours du mois précédent
echo '<td class="calendrier_td_non_actif">'.$jourmoissuivant.'</td>';
}
$i++;
$jourmoissuivant++;
}
echo '</tr></table>';
$i=41;
}
}	
// Si la variable i correspond à un dimanche (multiple de 7), 
// on passe à la ligne suivante dans le tableau
if($i % 7 == 0)
{
echo '</tr><tr>';
}
 
}
?>
Le problème vient, je pense, des premières lignes, avec la requête SQL. Mais je ne sais pas comment m'y prendre, j'suis saturé
Merci d'avance à tous ceux qui m'aideront

PS : la date enregistrée dans ma bdd est sous forme de timestamp alors je le formate pour faire des comparaisons correctes dans le calendrier.
De plus, j'ai également essayé ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
$req_recup_events = mysql_query('SELECT * FROM events');
while($recup_events = mysql_fetch_assoc($req_recup_events))
{
$date_events = $recup_events['date'];
$date_format =  date('d-n-Y', $date_events);
$date = explode('-', $date_format);
}
Mais ça ne m'a pas aidé énormément.