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');
Version imprimable
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'];