Tu n'as pas répondu, tu as bien l'erreur APRES avoir validé le formulaire ?
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 autre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:Notice: Undefined variable: sth
voici le code de la page
Code : Sélectionner tout - Visualiser dans une fenêtre à part while ($row = $sth->fetch(PDO::FETCH_ASSOC))
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 <?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
![]()
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 :
Notice: Undefined variable: objDatefincode complet:
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 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 : 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 <?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 : 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 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.php
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
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 : 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 <?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
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part <form method="post" action="">
avec toute la gestion de l'affichage du tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part </form>
la date du tableau est bien géré par cela
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager