Tu n'as pas répondu, tu as bien l'erreur APRES avoir validé le formulaire ?
Version imprimable
Tu n'as pas répondu, tu as bien l'erreur APRES avoir validé le formulaire ?
en fait je n'ai plus l'erreur apres que j'ai rajouté .
sinon avant la modification je l'avais après validation du formulaire
mais j'en ai récuperer une autreCode:
1
2
3
4
5
6
7
8 if (isset($_POST['JOUR_DEBUT']) && isset($_POST['JOUR_FIN']) ){ $sth=$pdo->prepare("SELECT SALLE, PRODUITS, JOUR_DEBUT, JOUR_FIN FROM planning WHERE SALLE IN ('Salle 1',Salle 2','Salle 3',Salle 4','Salle 5',Cours',Vestiaires')AND JOUR_DEBUT <=:j_fin AND JOUR_FIN >=:j_debut"); $sth->execute(array( ':j_debut'=>$_POST['JOUR_DEBUT'], ':j_fin'=>$_POST['JOUR_FIN'] )); }
pour:Citation:
Notice: Undefined variable: sth
voici le code de la pageCode:while ($row = $sth->fetch(PDO::FETCH_ASSOC))
Code:
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 <?php require_once("connexionsallesMysql.php"); if (isset($_POST['JOUR_DEBUT']) && isset($_POST['JOUR_FIN']) ){ $sth=$pdo->prepare("SELECT * FROM planning WHERE SALLE IN ('Salle 1','Salle 2','Salle 3','Salle 4','Salle 5','Cours','Vestiaires')AND JOUR_DEBUT <=:j_fin AND JOUR_FIN >=:j_debut"); $sth->execute(array( ':j_debut'=>$_POST['JOUR_DEBUT'], ':j_fin'=>$_POST['JOUR_FIN'] )); } ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Gestion des Salles</title> </head> <body> <table border="1" cellspacing="1" cellpadding="30"> <?php $objDatedebut = date_create(); if ($objDatedebut->format('N') != 1) { $objDatedebut->modify('last monday'); } while ($donnees = $sth->fetch(PDO::FETCH_ASSOC)) { $objDatedebut = date_create($donnees['JOUR_DEBUT']); $objDatefin = date_create($donnees['JOUR_FIN']); for( $date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) { $tableau[$donnees['SALLE']][$date->format('Y-m-d')][] = $donnees['PRODUITS']; } } $tblSalles = array( 0 => 'Salles', 1 => 'Salle 1', 2 => 'Salle 2', 3 => 'Salle 3', 4 => 'Salle 4', 5 => 'Salle 5', 6 => 'Cours', 7 => 'Vestiaires' ); foreach ($tblSalles as $key=>$Salle) { echo '<tr> <td>' . $Salle . '</td>'; for ($date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) { if ($key == 0) { $case = $date->format('d/m/Y'); } else { $case = isset($tableau[$Salle][$date->format('Y-m-d')]) ? $tableau[$Salle][$date->format('Y-m-d')] : ''; } echo '<td>' . $case .'</td>'; } echo '</tr>'; } ?> </table> </body> </html>
La boucle fetch va juste après le execute.
quand je fais ce que tu me dis je me retrouve avec une multitude de message d'erreur
Pièce jointe 183360
Comment $sth peut se retrouver ligne 20 ?
Montre nous le code.
excuse moi c'est une mauvaise capture d'ecran,
tous les messages d'erreur sont :
Citation:
Notice: Undefined variable: objDatefin
code complet:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 foreach ($tblSalles as $key=>$Salle) { echo '<tr> <td>' . $Salle . '</td>'; for ($date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) { if ($key == 0) { $case = $date->format('d/m/Y'); } else { $case = isset($tableau[$Salle][$date->format('Y-m-d')]) ? $tableau[$Salle][$date->format('Y-m-d')] : ''; } echo '<td>' . $case .'</td>'; } echo '</tr>';
Code:
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 <?php require_once("connexionsallesMysql.php"); if (isset($_POST['JOUR_DEBUT']) && isset($_POST['JOUR_FIN']) ){ $sth=$pdo->prepare("SELECT * FROM planning WHERE SALLE IN ('Salle 1','Salle 2','Salle 3','Salle 4','Salle 5','Cours','Vestiaires')AND JOUR_DEBUT <=:j_fin AND JOUR_FIN >=:j_debut"); $sth->execute(array( ':j_debut'=>$_POST['JOUR_DEBUT'], ':j_fin'=>$_POST['JOUR_FIN'] )); while ($donnees = $sth->fetch(PDO::FETCH_ASSOC)) { $objDatedebut = date_create($donnees['JOUR_DEBUT']); $objDatefin = date_create($donnees['JOUR_FIN']); for( $date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) { $tableau[$donnees['SALLE']][$date->format('Y-m-d')][] = $donnees['PRODUITS']; } } } ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Gestion des Salles</title> </head> <body> <table border="1" cellspacing="1" cellpadding="30"> <?php $objDatedebut = date_create(); if ($objDatedebut->format('N') != 1) { $objDatedebut->modify('last monday'); } $tblSalles = array( 0 => 'Salles', 1 => 'Salle 1', 2 => 'Salle 2', 3 => 'Salle 3', 4 => 'Salle 4', 5 => 'Salle 5', 6 => 'Cours', 7 => 'Vestiaires' ); foreach ($tblSalles as $key=>$Salle) { echo '<tr> <td>' . $Salle . '</td>'; for ($date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) { if ($key == 0) { $case = $date->format('d/m/Y'); } else { $case = isset($tableau[$Salle][$date->format('Y-m-d')]) ? $tableau[$Salle][$date->format('Y-m-d')] : ''; } echo '<td>' . $case .'</td>'; } echo '</tr>'; } ?> </table> </body> </html>
$objDatefin n'est pas défini dans ton code.
plus de message d'erreur mais aucun affichage
Le code, le code, le code, le code
Et je pose la question pour la 3ème fois : est-ce que tu valides bien ton formulaire ?
le voila ce m'affiche error,je pense que le problème vient de ma premiere ligne,condition pas remplie?
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 if (isset($_POST['JOUR_DEBUT']) && isset($_POST['JOUR_FIN']) ){ $sth=$pdo->prepare("SELECT SALLE, PRODUITS, JOUR_DEBUT, JOUR_FIN FROM planning WHERE SALLE IN ('Salle_1','Salle_2','Salle_3','Salle_4','Salle_5','Cours','Vestiaires')AND JOUR_DEBUT <=:j_fin AND JOUR_FIN >=:j_debut"); $sth->execute(array( ':j_debut'=>$_POST['JOUR_DEBUT'], ':j_fin'=>$_POST['JOUR_FIN'] )); while ($donnees = $sth->fetch(PDO::FETCH_ASSOC)) { $objDatedebut = date_create($donnees['JOUR_DEBUT']); $objDatefin = date_create($donnees['JOUR_FIN']); for( $date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) { $tableau[$donnees['SALLE']][$date->format('Y-m-d')][] = $donnees['PRODUITS']; } } }else{ echo 'error'; }
Petite question que veux tu dire quand tu parles de validation de formulaire.
Si tu parles de bouton submit,j'en ai pas.le tableau est destiné à que de l'affichage
Si tu n'as pas de bouton submit, comment valides-tu les dates saisies dans DATE_DEBUT et DATE_FIN ?
La tu me parles du formulaire de saisie,effectivement dans ce cas j'ai un bouton submit
Les valeurs saisies sont bien enregistrée dans la table
Pourquoi tu mets des $_POST partout alors s'il n'y a pas de formulaire pour l'affichage du planning ?
Et si les dates pour l'affichage ne viennent pas du formulaire, comment sont-elles définies ?
J'ai 2 formulaires,
1 qui gère la saisie( produits,salle, jour_debut et jour_fin) une fois tous ces renseignement remplis ils sont enregistré dans la table.
Dans le formulaire planning,c'est la que je dois récupérer les données via la requête du SÉLECT en fonction des salles ainsi que des dates debut et fin pour les afficher dans le tableau
saisie.php
planning.phpCode:
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197 <?php if (!empty($_POST)){ extract($_POST); $validation=true; if($JOUR_DEBUT<10){ $JOUR_DEBUT='0'.$JOUR_DEBUT; } if($mois<10){ $mois='0'.$mois; } $date_unix = strtotime($annee.'-'.$mois.'-'.$JOUR_DEBUT); if (($mois=='04'|| $mois=='06' || $mois=='09' || $mois=='11' ) && ($JOUR_DEBUT =='31')){ $validation=false; $erreur_date= "Ce jour n'existe pas"; }elseif(($mois=='02') && ($JOUR_DEBUT>'29')){ $validation=false; $erreur_date= "Ce jour n'existe pas"; }elseif($date_unix < time()){ $validation = false; $erreur_date = "date invalide"; } if($JOUR_FIN<10){ $JOUR_FIN='0'.$JOUR_FIN; } if($moisf<10){ $moisf='0'.$moisf; } $datef_unix = strtotime($annee.'-'.$moisf.'-'.$JOUR_FIN); if (($moisf=='04'|| $moisf=='06' || $moisf=='09' || $moisf=='11' ) && ($JOUR_FIN =='31')){ $validation=false; $erreur_date= "Ce jour n'existe pas"; }elseif(($moisf=='02') && ($jour>'29')){ $validation=false; $erreur_date= "Ce jour n'existe pas"; }elseif($datef_unix < time()){ $validation = false; $erreur_date = "date invalide"; } if(empty($produits)){ $validation = false; $erreur_produits = "Indiquez le produit"; } if($validation){ require_once("connexionsallesMysql.php"); $req=$pdo->prepare("UPDATE planning SET PRODUITS =:produits, JOUR_DEBUT=:jour_debut, JOUR_FIN=:jour_fin WHERE SALLE=:id") ; $req->execute(array( ':produits'=>$produits, ':jour_debut' =>$annee.'-'.$mois.'-'.$JOUR_DEBUT, ':jour_fin' =>$anneef.'-'.$moisf.'-'.$JOUR_FIN, ':id' =>$Salle )) ; $req->closeCursor(); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Messagerie au Support </title> </head> <body> <form method="post" action="planning.php"> <?php if(isset($erreur_date)) echo'<span>'.$erreur_date.'</span><br />'; if(isset($erreur_heure)) echo'<span>'.$erreur_heure.'</span><br />'; ?> <label for="JOUR_DEBUT">jour début</label><br /> <select name="JOUR_DEBUT"> <?php $i=1; while($i<=31){ if((isset($JOUR_DEBUT)) && ($JOUR_DEBUT==$i)){ echo '<option value="'.$i.'"selected>'.$i.'</option>'; }else{ echo '<option value="'.$i.'">'.$i.'</option>'; } $i++; } ?> </select> <select name="mois"> <?php $mois_francais=array('','Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre') ; $i=1; while($i<=12){ if((isset($mois)) && ($mois==$i)){ echo '<option value="'.$i.'"selected>'.$mois_francais[$i].'</option>'; }else{ echo '<option value="'.$i.'">'.$mois_francais[$i].'</option>'; } $i++; } ?> </select> <select name="annee"> <?php $année_actuelle=date('Y') ; $i=0; while($i<3){ $annees =$année_actuelle + $i; if((isset($annee)) && ($annee==$annees)){ echo '<option value="'.$annees.'"selected>'.$annees.'</option>'; }else{ echo '<option value="'.$annees .'">'.$annees .'</option>'; } $i++; } ?> </select> <br /> <label for="JOUR_FIN">jour fin</label><br /> <select name="JOUR_FIN"> <?php $i=1; while($i<=31){ if((isset($JOUR_FIN)) && ($JOUR_FIN==$i)){ echo '<option value="'.$i.'"selected>'.$i.'</option>'; }else{ echo '<option value="'.$i.'">'.$i.'</option>'; } $i++; } ?> </select> <select name="moisf"> <?php $moisf_francais=array('','Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre') ; $i=1; while($i<=12){ if((isset($moisf)) && ($moisf==$i)){ echo '<option value="'.$i.'"selected>'.$moisf_francais[$i].'</option>'; }else{ echo '<option value="'.$i.'">'.$moisf_francais[$i].'</option>'; } $i++; } ?> </select> <select name="anneef"> <?php $année_actuelle=date('Y') ; $i=0; while($i<3){ $anneesf =$année_actuelle + $i; if((isset($anneef)) && ($anneef==$anneesf)){ echo '<option value="'.$anneesf.'"selected>'.$anneesf.'</option>'; }else{ echo '<option value="'.$anneesf .'">'.$anneesf .'</option>'; } $i++; } ?> </select> <br /> <?php if(isset($erreur_produits)) echo'<span>'.$erreur_produits.'</span><br />'; ?> <label for="Salle">Salle</label> <br /> <select name="Salle"> <option value="">Selectionner</option> <option value="Salle_1">Salle 1</option> <option value="Salle_2"Salle 2</option> <option value="Salle_3">Salle 3</option> <option value="Salle_4">Salle 4</option> <option value="Salle_5">Salle 5</option> <option value="Cours">Cours</option> <option value="Vestiaires">Vestiaires</option> </select> <br /> <label for="produits">produits</label> <br /> <input type="text" name="produits" value="<?php if(isset($produits)) echo $produits;?>" /> <br /> <input type="submit" value="Enregister" /> </form> </body> </html>
Code:
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 <?php require_once("connexionsallesMysql.php"); if (isset($_POST['JOUR_DEBUT']) && isset($_POST['JOUR_FIN']) ){ $sth=$pdo->prepare("SELECT SALLE, PRODUITS, JOUR_DEBUT, JOUR_FIN FROM planning WHERE SALLE IN ('Salle_1','Salle_2','Salle_3','Salle_4','Salle_5','Cours','Vestiaires')AND JOUR_DEBUT <=:j_fin AND JOUR_FIN >=:j_debut"); $sth->execute(array( ':j_debut'=>$_POST['JOUR_DEBUT'], ':j_fin'=>$_POST['JOUR_FIN'] )); while ($donnees = $sth->fetch(PDO::FETCH_ASSOC)) { $objDatedebut = date_create($donnees['JOUR_DEBUT']); $objDatefin = date_create($donnees['JOUR_FIN']); for( $date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) { $tableau[$donnees['SALLE']][$date->format('Y-m-d')][] = $donnees['PRODUITS']; } } }else{ echo 'error'; } ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Gestion des Salles</title> </head> <body> <form method="post" action=""> <table border="1" cellspacing="1" cellpadding="30"> <?php $objDatedebut = date_create(); $objDatefin = date_create(); if ($objDatedebut->format('N') != 1) { $objDatedebut->modify('last monday'); } $tblSalles = array( 0 => 'Salles', 1 => 'Salle 1', 2 => 'Salle 2', 3 => 'Salle 3', 4 => 'Salle 4', 5 => 'Salle 5', 6 => 'Cours', 7 => 'Vestiaires' ); foreach ($tblSalles as $key=>$Salle) { echo '<tr> <td>' . $Salle . '</td>'; for ($date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) { if ($key == 0) { $case = $date->format('d/m/Y'); } else { $case = isset($tableau[$Salle][$date->format('Y-m-d')]) ? $tableau[$Salle][$date->format('Y-m-d')] : ''; } echo '<td>' . $case .'</td>'; } echo '</tr>'; } ?> </table> </form> </body> </html>
En quoi le planning est-il un formulaire ?
Comment est définie la date à laquelle commence le planning ?
j'ai remis les pages saisie.php ainsi que planning.php sur le post precedent
ça ne répond à aucune des deux questions.
dans le planning j'ai les balises
etCode:<form method="post" action="">
avec toute la gestion de l'affichage du tableauCode:</form>
la date du tableau est bien géré par cela
Code:
1
2
3
4
5
6
7
8 if ($key == 0) { $case = $date->format('d/m/y'); } else { $case = isset($tableau[$Salle][$date->format('Y-m-d')]) ? $tableau[$Salle][$date->format('Y-m-d')] : ''; }
Certes mais a quoi servent ces balises <form> puisqu'il n'y a aucun champ à l'intérieur ?
Et pour la question concernant la date de début ?
Faut il insérer dans ce cas un champs hidden pour récupérer les valeurs de date début et fin de la page saisie.php ?
Cette ligne gère bien la date avec le date_create()
Code:$case = $date->format('d/m/y');
Tu n'as pas répondu à mes deux questions.
ce que je me suis rendu compte c'est que $objDatefin me declenche une erreur,et que si je le remplace par une valeur '2015-07-15' il ne me reste que la colonne salle.
en mon sens il n'y a rien qui dit a quel date commence le tableau,de plus hier j'avais mes 7 colonnes et depuis aujourdh'hui (nouvelle semaine je n'ai que le lundi 1 colonne)Citation:
Notice: Undefined variable: objDatefin
Quand tu voudras bien répondre à mes deux questions, tu me feras signe.
Je veux bien te répondre mais le soucis pour être franc avec toi ce que j'en ai pas les réponses à te donner:(
Si tu ne sais pas pourquoi, tu as mis des balises <form> alors tu peux les retirer.
Quand à savoir à quelle date doit commencer le planning, il n'y a que toi qui peut répondre.
Les balises ont été enlevés et concernant la date du début proprement di j'en ai pas car le tableau commencerai le lundi jusqu'au dimanche,et dès le dimanche passé à l'autre semaine
C'est quoi "le lundi" ? Le lundi de la semaine en cours ?
Oui par exemple pour cette semaine cela serait semaine du lundi 20 /07/2015 au dimanche 26/07/2015
Sur la première page je t'ai déjà montré comment avoir ces dates.
oui nous sommes d'accord mais mon problème principal c'est d'avoir toujours ce probleme de variable non définie sur la ligne d'execute(j'ai enleve les isset car plus de message d'erreur mais pas d'affichage non plus
Code:
1
2
3
4 require_once("connexionsallesMysql.php"); $sth=$pdo->prepare("SELECT SALLE, PRODUITS, JOUR_DEBUT, JOUR_FIN FROM planning WHERE SALLE IN ('Salle_1','Salle_2','Salle_3','Salle_4','Salle_5','Cours','Vestiaires')AND JOUR_DEBUT <=:j_fin AND JOUR_FIN >=:j_debut"); $sth->execute(array(':j_debut'=>$_POST['JOUR_DEBUT'],':j_fin'=>$_POST['JOUR_FIN']));
Citation:
Notice: Undefined index: JOUR_DEBUT
Notice: Undefined index: JOUR_FIN
$_POST['JOUR_DEBUT'] doit être remplacé par ta date de début et $_POST['JOUR_FIN'] par ta date de fin.
$_POST['JOUR_DEBUT'] et $_POST['JOUR_FIN'] ne sont pas censé récuperer les dates qui se trouvent dans la table?
j'ai essayé de les remplacer respectivement par les dates ,rien ne s'affiche
absolument pasCitation:
$_POST['JOUR_DEBUT'] et $_POST['JOUR_FIN'] ne sont pas censé récuperer les dates qui se trouvent dans la table?
tu devrais revoir les bases de PHP, $_POST contient les données venant d'un formulaire POST ; ce qui n'est pas ton cas.
le code stp, toujours pareil.Citation:
j'ai essayé de les remplacer respectivement par les dates ,rien ne s'affiche
voici le code:
Code:
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 <?php require_once("connexionsallesMysql.php"); $sth=$pdo->prepare("SELECT SALLE, PRODUITS, JOUR_DEBUT, JOUR_FIN FROM planning WHERE SALLE IN ('Salle_1','Salle_2','Salle_3','Salle_4','Salle_5','Cours','Vestiaires')AND JOUR_DEBUT <=:j_fin AND JOUR_FIN >=:j_debut"); $sth->execute(array(':j_debut'=>'2015-07-20',':j_fin'=>'2015-07-20')); while ($donnees = $sth->fetch(PDO::FETCH_ASSOC)) { $objDatedebut = date_create($donnees['JOUR_DEBUT']); $objDatefin = date_create($donnees['JOUR_FIN']); for( $date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) { $tableau[$donnees['SALLE']][$date->format('Y-m-d')][] = $donnees['PRODUITS']; } } ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> <head> <meta http-equiv="Refresh" content="10" > <title>Gestion des Salles</title> </head> <body> <table border="1" cellspacing="1" cellpadding="30"> <?php $objDatedebut = date_create('2015-07-20'); $objDatefin = date_create('2015-07-26'); $objDatedebut = date_create(); if ($objDatedebut->format('N') != 1) { $objDatedebut->modify('last monday'); } $tblSalles = array( 0 => 'Salles', 1 => 'Salle 1', 2 => 'Salle 2', 3 => 'Salle 3', 4 => 'Salle 4', 5 => 'Salle 5', 6 => 'Cours', 7 => 'Vestiaires' ); foreach ($tblSalles as $key=>$Salle) { echo '<tr> <td>' . $Salle . '</td>'; for ($date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) { if ($key == 0) { $case = $date->format('d/m/y'); } else { $case = isset($tableau[$Salle][$date->format('Y-m-d')]) ? $tableau[$Salle][$date->format('Y-m-d')] : ''; } echo '<td>' . $case .'</td>'; } echo '</tr>'; } ?> </table> </body> </html>
j'ai mis un var_dump( $tableau)
ici
voici le resultatCode:
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 foreach ($tblSalles as $key=>$Salle) { echo '<tr> <td>' . $Salle . '</td>'; for ($date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) { if ($key == 0) { $case = $date->format('d/m/Y'); } else { $case = isset($tableau[$Salle][$date->format('Y-m-d')]) ? $tableau[$Salle][$date->format('Y-m-d')] : ''; var_dump( $tableau); var_dump( $case); } echo '<td>' . $case .'</td>'; } echo '</tr>'; } ?> </table> </form> </body> </html>
resultat pour var_dump( $case);Code:
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 array (size=1) 'Salle_1' => array (size=1) '2015-07-20' => array (size=1) 0 => string 'testsssss' (length=9) array (size=2) 'Salle_1' => array (size=1) '2015-07-20' => array (size=1) 0 => string 'testsssss' (length=9) 'Salle_4' => array (size=1) '2015-07-20' => array (size=1) 0 => string 'ok' (length=2) array (size=3) 'Salle_1' => array (size=1) '2015-07-20' => array (size=1) 0 => string 'testsssss' (length=9) 'Salle_4' => array (size=1) '2015-07-20' => array (size=1) 0 => string 'ok' (length=2) 'Salle_5' => array (size=1) '2015-07-20' => array (size=1) 0 => string 'test' (length=4)
Code:
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 string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0) string '' (length=0)
Tu as mis la même chose pour début et fin dans la requête.
Oui car je peut avoir des cas pour une journée, ou sur une période supérieure à 1 jour.dans le cas présent c'est 1 journee
Si tu veux bref, les dates dans la requête doivent être les mêmes que celles du planning.
donc si je te suis bien j'ai un soucis dans mon format car les dates du tableau et requete sont dans le format Français mais dans ma table phpmyadmin la date est en format anglais(type date).sinon je ne vois pas car pour mes différents exemple les dates sont bonnes et devraient etre afficher dans le tableau de la semaine^
Code:
1
2
3
4
5
6
7
8
9
10 <?php require_once("connexionsallesMysql.php"); $sth=$pdo->prepare("SELECT SALLE, PRODUITS, JOUR_DEBUT, JOUR_FIN FROM planning WHERE SALLE IN ('Salle_1','Salle_2','Salle_3','Salle_4','Salle_5','Cours','Vestiaires')AND JOUR_DEBUT <=:j_fin AND JOUR_FIN >=:j_debut");$sth->execute(array(':j_debut'=>'20-07-2015',':j_fin'=>'20-07-2015')); while ($donnees = $sth->fetch(PDO::FETCH_ASSOC)) { $objDatedebut = date_create('20-07-2015'); $objDatefin = date_create('20-07-2015'); for( $date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) { $tableau[$donnees['SALLE']][$date->format('Y-m-d')][] = $donnees['PRODUITS'];