Planning maken in een kalender
De kalender werkt, de query ook. Hoe kan ik vanaf het moment dat de pagina wordt geopend de tijden doortellen en live de planning weergeven?
Verder als onderstaande kom ik helaas niet:
Code (php)
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
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
<?php
$monthNames = Array("januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december");
$dayNames = Array("zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag");
if (!isset($_GET["month"])) $_GET["month"] = date("n");
if (!isset($_GET["year"])) $_GET["year"] = date("Y");
$cMonth = $_GET["month"];
$cYear = $_GET["year"];
$prev_year = $cYear;
$next_year = $cYear;
$prev_month = $cMonth-1;
$next_month = $cMonth+1;
if ($prev_month == 0 )
{
$prev_month = 12;
$prev_year = $cYear - 1;
}
if ($next_month == 13 )
{
$next_month = 1;
$next_year = $cYear + 1;
}
?>
<div id="calendar_div" name="calendar_div">
<table width="100%">
<tr align="center">
<td bgcolor="#999999" style="color:#FFFFFF">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="33%" align="left"> <a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $prev_month . "&year=" . $prev_year; ?>" style="color:#FFFFFF">Vorige</a></td>
<td width="34%" align="center" bgcolor="#999999" style="color:#FFFFFF"><strong><?php echo $monthNames[$cMonth-1].' '.$cYear; ?></strong></td>
<td width="33%" align="right"><a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $next_month . "&year=" . $next_year; ?>" style="color:#FFFFFF">Volgende</a> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center">
<table width="500" border="0" cellpadding="0" cellspacing="0">
<tr align="left">
<?php
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
$day_no = 0;
// query
$sql = "SELECT
id,
offerte_id,
cnc,
aantal,
dikte,
machine,
materiaal,
snij_tijd + extra_tijd AS tijd,
datum_gereed
FROM is_planning
ORDER BY datum_gereed ASC";
if(!$res = mysql_query($sql,$con))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
while ($row = mysql_fetch_array($res))
{
}
// tijden
$min_per_dag = 480;
$min_start = 0;
$min_end = $min_per_dag;
for ($i=0; $i<($maxday+$startday); $i++)
{
$today = $i - $startday + 1;
$day = $dayNames[$day_no];
$day_no = $day_no + 1;
// zet dagnummer weer terug op 0 bij nummer 8 (bestaat niet)
if($day_no == 7)
{
$day_no = 0;
}
// geef geen weergave als de dag niet bestaat
if($i < $startday)
{
echo '<tr></tr>';
}
// geef weergave
elseif($i > date("j"))
{
echo '<tr>
<td width="25">'.$day.' '.$today. ' '.$monthNames[$cMonth-1].' '.$cYear.'</td>';
for ($min = $min_start; $min < $min_end; $min++)
{
echo '<td bgcolor="red">'.$min.'</td>';
}
echo '</tr>';
// neem minuten stand mee naar de volgende dag
$min_start = $min_end;
$min_end = $min_start + $min_per_dag;
}
// geef weergave dagen verstreken
else
{
echo '<tr>
<td width="25">'.$day.' '.$today. ' '.$monthNames[$cMonth-1].' '.$cYear.'</td>
<td bgcolor="grey"></td>
</tr>';
}
}
?>
</tr>
</table>
</td>
</tr>
</table>
</div>
$monthNames = Array("januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december");
$dayNames = Array("zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag");
if (!isset($_GET["month"])) $_GET["month"] = date("n");
if (!isset($_GET["year"])) $_GET["year"] = date("Y");
$cMonth = $_GET["month"];
$cYear = $_GET["year"];
$prev_year = $cYear;
$next_year = $cYear;
$prev_month = $cMonth-1;
$next_month = $cMonth+1;
if ($prev_month == 0 )
{
$prev_month = 12;
$prev_year = $cYear - 1;
}
if ($next_month == 13 )
{
$next_month = 1;
$next_year = $cYear + 1;
}
?>
<div id="calendar_div" name="calendar_div">
<table width="100%">
<tr align="center">
<td bgcolor="#999999" style="color:#FFFFFF">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="33%" align="left"> <a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $prev_month . "&year=" . $prev_year; ?>" style="color:#FFFFFF">Vorige</a></td>
<td width="34%" align="center" bgcolor="#999999" style="color:#FFFFFF"><strong><?php echo $monthNames[$cMonth-1].' '.$cYear; ?></strong></td>
<td width="33%" align="right"><a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $next_month . "&year=" . $next_year; ?>" style="color:#FFFFFF">Volgende</a> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center">
<table width="500" border="0" cellpadding="0" cellspacing="0">
<tr align="left">
<?php
$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
$day_no = 0;
// query
$sql = "SELECT
id,
offerte_id,
cnc,
aantal,
dikte,
machine,
materiaal,
snij_tijd + extra_tijd AS tijd,
datum_gereed
FROM is_planning
ORDER BY datum_gereed ASC";
if(!$res = mysql_query($sql,$con))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
while ($row = mysql_fetch_array($res))
{
}
// tijden
$min_per_dag = 480;
$min_start = 0;
$min_end = $min_per_dag;
for ($i=0; $i<($maxday+$startday); $i++)
{
$today = $i - $startday + 1;
$day = $dayNames[$day_no];
$day_no = $day_no + 1;
// zet dagnummer weer terug op 0 bij nummer 8 (bestaat niet)
if($day_no == 7)
{
$day_no = 0;
}
// geef geen weergave als de dag niet bestaat
if($i < $startday)
{
echo '<tr></tr>';
}
// geef weergave
elseif($i > date("j"))
{
echo '<tr>
<td width="25">'.$day.' '.$today. ' '.$monthNames[$cMonth-1].' '.$cYear.'</td>';
for ($min = $min_start; $min < $min_end; $min++)
{
echo '<td bgcolor="red">'.$min.'</td>';
}
echo '</tr>';
// neem minuten stand mee naar de volgende dag
$min_start = $min_end;
$min_end = $min_start + $min_per_dag;
}
// geef weergave dagen verstreken
else
{
echo '<tr>
<td width="25">'.$day.' '.$today. ' '.$monthNames[$cMonth-1].' '.$cYear.'</td>
<td bgcolor="grey"></td>
</tr>';
}
}
?>
</tr>
</table>
</td>
</tr>
</table>
</div>
Iemand een idee?
Wat is precies de vraag?
Hoe kan ik vanaf het moment dat de pagina wordt geopend de tijden doortellen en live de planning weergeven in de kalender?
met de date(); functie kun je de huidige tijd/datum etc ophalen wat je weer kunt gebruiken in je query.
Ok, maar hoe ga ik dat grafisch weergeven in mijn kalender?
Ik denk dat de TS bedoelt dat hij door middel van knopjes < en > door de kalender kan "lopen".
Mijn idee is dat ik een kalender voor de komende 3 weken heb waarin grafisch een weergave is van de planning. Op een manier als wanneer de planning wordt geopend de kalender realtime wordt ingevuld aan de hand van de DB. De tijden (in minuten) die uit mijn DB koment moeten dan worden ingevuld, de volgende tijd is daarop weer aansluitend.