database output als calender
calendar_id int(11) Nee 0
calendar_date date Nee 0000-00-00 :
calender_id | calender_date
1| '2006-01-01'
2| '2006-01-02'
3| '2006-01-03'
4| '2006-01-04'
5| '2006-01-05'
6| '2006-01-06'
7| '2006-01-07'
8| '2006-01-08'
9| '2006-01-09'
10| '2006-01-10'
t/m
365 voor het gehele jaar dus.
Hoe krijg ik dit in een calender viewmode
dus 1 t/m 31 januarie in een kolom januarie op dag gesorteerd ditzelfde voor de andere maanden.
Ik heb echt geen flauw benul.
Bij voorbaat dank ik u zeer
PS: Ik moet het echt op deze wijze maken dus via een database.
Gewijzigd op 01/01/1970 01:00:00 door Henry
ik heb de database ook aangepast nu
ik voor iedere datum dus bv
2006-09-12
heb ik ervoor een $did gemaakt
dus
calendar_id int(11) Nee 0
did int(11) Nee 0
calendar_date date Nee 0000-00-00
255, 12, '2006-09-12'
September 2006
Mon Tue Wed Thu Fri Sat Sun
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
<<Prev month Next Month>>
Gewijzigd op 01/01/1970 01:00:00 door Henry
Het kan gewoon niet de bedoeling zijn om alle datums in de database te zetten en op basis van die gegevens een kalender samen te stellen. Dat is gewoon onzinnig.
PS: Ik moet het echt op deze wijze maken dus via een database.
hoe onzinnig jij het ook vind
Zo moet het eruit komen te zien maar dan moet het de datums uit mijn database gebruiken.Dus GEEN door php gegenereerde calender.
Maar een calender gegenereerd MET php waarbij de datums dus direct uit de database komen.
idd van die java/dhtml/html en easy php calenders heb ik er al 1000 van gezien.
php mag wel de date functies gebruiken natuurlijk om de data uit mysql te converteren tot een calender.
Het zou al een heel stuk helpen, als je ons vertelt waarom het zo moet en niet alleen dat het zo moet.
01-03-2006 voeg toe aan winkelwagen.
dus in feite is iedere datum 1 product.
word er elk jaar een nieuwe kalender ingevoert.
ik weet dat het niet logisch klinkt maar juist in mijn geval wel , geloof me ik heb geen denkfout gemaakt
elke datum word appart aan 1 hoofdproduct gekoppelt.
Je kunt het ook zien als een reserverings systeem alleenmet zo'n soort systemen ben je meestal beperkt tot 1 datum range dus van xx tot xx
dit wil ik niet.. ik wil zeggen ik kies 1 januarie 5 december etc etc.
het is tevens cruciaal dat de datums als producten ingevoerd worden ivm administratie.
En last but not least ik vind het tevens logischer om met tastbare gegevens te werken.
door gebruik te aken van prev/next beperk ik de laadtijd tot een maximaal van 31 producten.
Daarnaast kan ik vanuit dit systeem de beschikbaarheid veel makkelijker beperken dmv checks ipv moeilijke functies te maken.
Gewijzigd op 01/01/1970 01:00:00 door Henry
SELECT datum
FROM datums
WHERE MONTH(datum) = 1
ORDER BY datum ASC
in mijn database staan de datums als volgt
1, 1, '2006-01-01'
2, 2, '2006-01-02'
3, 3, '2006-01-03'
4, 4, '2006-01-04'
5, 5, '2006-01-05'
6, 6, '2006-01-06'
7, 7, '2006-01-07'
8, 8, '2006-01-08'
9, 9, '2006-01-09'
10, 10, '2006-01-10'
11, 11, '2006-01-11'
12, 12, '2006-01-12'
xxx
244, 1, '2006-09-01'
id=244 ,1 is 1st dag van de maand, datumformat van die maand is DATE(2006-09-01)
Dus alleen al van de waarde DATE(2006-09-01) moet toch php code bestaan die met dit gegeven een hele calender creërt.
Het gaat mij om hoe ik deze data format ... aan een rij van januarie heb ik natuurlijk niks.
Het doel is om dan in dit geval WEL met de php date functies hieruit een calender te construeren.
ik weet dat er php functies bestaandie dan dus ook de naam vd dag laten zien
ma-di-woe-do-vrij-za-zo
1 2 3 4 5
6 7 8 9 10 11 12
enz
Gewijzigd op 01/01/1970 01:00:00 door Henry
ik vraag namelijk niet om een hele aplicatie te bouwen.
Daarnaast denk ik dat er met mijn vraag niks mis is en hier weinig tot eigenlijk geen toelichting nodig is.
ik weet wat er allemaal mogelijk is met een pc'tje , maar dat wil niet zeggen dat ik weet HOE ik m op de juiste manier dien te gebruiken.
Als ik naar de bakker ga en vraag voor kersenvlaai ZONDER slagroom gaat de bakker echt niet zeggen "ik zou er slagroom opdoen dan is ei veel lekkerder" je kunt dan concluderen dat hij zonder slagroom niet lekker is en de bakker dus eigenlijk geen lekkere kersenvlaai kan bakken.
Je vergelijking met de bakker gaat niet op. Je betaalt hem namelijk voor een product. Hier gaat alles op basis van vrijwilligheid en je zult merken dat deze manier van posten niet echt uitnodigend is voor de mensen die je zouden kunnen helpen.
Henry schreef op 08.10.2006 21:32:
ik weet dat er php functies bestaandie dan dus ook de naam vd dag laten zien
ma-di-woe-do-vrij-za-zo
1 2 3 4 5
6 7 8 9 10 11 12
enz
ma-di-woe-do-vrij-za-zo
1 2 3 4 5
6 7 8 9 10 11 12
enz
Idd wat jan al zegt nodigt dit niet erg uit, maargoed.
Je kent dus al functies die ma-di-wo-enz.. weergeven, doe het dan als volgt:
Haal dagnaam op.. (of dagnummer, is al genoeg)
tabel maken met row waarin ma t/m zo staan, vervolgens kijk je welke dag het is, en in die kolom begin je met schrijven, en zo ga je verder.. (overigens kan je ook een weekdagnummer ophalen met MySQL, dat is sneller)
maar er word NIET naar de vraag gekeken.
De vraag is toch heel duidelijk
er staat niet onder....
of hoe zou iemand anders het doen..
de vraag is heel specefiek en duidelijk.
Ik vind als je mij NIET wilt of kunt helpen je gewoon niet moet reageren.
Dat is zinloos en onnodig data en bandbreedte verspilling.
Blijf bij de topic vraag en ga niet bakkeleien
Henry schreef op 08.10.2006 22:14:
ik had zo'n tegen reactie verwacht.
maar er word NIET naar de vraag gekeken.
De vraag is toch heel duidelijk
er staat niet onder....
of hoe zou iemand anders het doen..
de vraag is heel specefiek en duidelijk.
Ik vind als je mij NIET wilt of kunt helpen je gewoon niet moet reageren.
Dat is zinloos en onnodig data en bandbreedte verspilling.
Blijf bij de topic vraag en ga niet bakkeleien
maar er word NIET naar de vraag gekeken.
De vraag is toch heel duidelijk
er staat niet onder....
of hoe zou iemand anders het doen..
de vraag is heel specefiek en duidelijk.
Ik vind als je mij NIET wilt of kunt helpen je gewoon niet moet reageren.
Dat is zinloos en onnodig data en bandbreedte verspilling.
Blijf bij de topic vraag en ga niet bakkeleien
Henry, wil je nog geholpen worden of niet, ik ben het echt met Jan eens. We proberen je op het goede pad te zetten door je op de (mijns insziens) betere alternatieven te wijzen.
Als jij je vervolgens aangevallen voelt doordat je het idee hebt dat je niet door ons wordt geholpen, is dat helemaal je eigen schuld. Uit je vraag blijkt namelijk al dat je niet zeer veel kennis hebt over het onderwerp. Jan is hier zo'n beetje degene met de meeste SQL-kennis, en weet ook ontzettend veel over PHP.
Als je zelf niet zoveel kennis hebt over het onderwerp, moet je blij zijn met de hulp die je, zoals Jan al aangaf VRIJWILLIG krijgt. Als je zo blijft reageren, voel ik me in ieder geval niet meer geroepen om je te gaan helpen.
Edit:
en lees ook even mijn vorige post, toen ik nog niet zo was gestruikeld over de reactie
en lees ook even mijn vorige post, toen ik nog niet zo was gestruikeld over de reactie
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
Ik had niet zo'n onbehoorlijke houding verwacht. Je hebt namelijk NIETS te verwachten. Dr zitten hier mensen gewoon in hun vrije tijd jouw te helpen, en je bent ontzettend ondankbaar.
Er worden alternatieven/kritiek aangedragen op wat je wil: daar ben je het niet mee eens en gaat stug verder, en vervolgens ga je klagen dat mensen het niet genoeg voor je voorkauwen? Kom nou, zoek het dan lekker zelf uit.
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
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
<?php
if (!defined('MODULE_FILE')) {
die ("You can't access this file directly...");
}
define('INDEX_FILE', true);
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
include("header.php");
global $db;
function displayCalendar($currYear=0,$currMonth=0) {
//
// get unix time for 1st of the month
//
$day1 = mktime(0,0,0,$currMonth,1,$currYear);
//
// get day of week it falls on
// normally sun is day 0 but we want mon to be day 0
// hence add 6, divide by 7 and get remainder (d+6)%7
//
$dow1 = (date('w',$day1)+6) % 7;
//
// get heading as October 2006
//
$calHead = date('F Y',$day1);
$self = $_SERVER['PHP_SELF'];
echo <<<EOT
<table border="0" cellspacing="0" style="border: 1pt solid silver">
<tr>
<td colspan="7" class="hd">$calHead</td>
</tr>
<tr>
<th class="wd">M</th>
<th class="wd">T</th>
<th class="wd">W</th>
<th class="wd">T</th>
<th class="wd">F</th>
<th class="we">S</th>
<th class="we">S</th>
</tr>
<tr>
EOT;
//
// Blanks until 1st of month
//
for ($d=0;$d<$dow1;$d++) {
$cl = ($d%7==5) || ($d%7==6) ? 'we' : 'wd';
echo "<td class='$cl'> </td>";
}
$c = $dow1;
//
// get dates from the db table
//
$sql = "SELECT did FROM calendar
WHERE YEAR(calendar_date) = '$currYear'
AND MONTH(calendar_date) = '$currMonth'";
$res = mysql_query($sql) or die (mysql_error());
while (list($d) = mysql_fetch_row($res)) {
// new row every 7 days
if ($c%7==0) echo "</tr><tr>";
// set style accordong to weekday or weekend
$cl = ($c%7==5) || ($c%7==6) ? 'we' : 'wd';
// show current day
$st = ($d == $currDay) ? "style='border: 1pt solid #FF0000'" : '';
echo "<td class=\"$cl\" $st>$d</td>\n";
$c++;
}
// finish off the last row of the month
while ($c++ % 7 != 0) {
$cl = ($c%7==6) || ($c%7==0) ? 'we' : 'wd';
echo "<td class='$cl'> </td>";
}
echo "</tr></table>\n";
}
?>
<style type="text/css">
<!--
TH.wd {background: #99CC99}
TH.we {background: #999999}
TD.wea {background: #CCCCCC}
TD.we {background: #EEEEEE; }
TD.wd {background: #EEFFEE}
TD.wda {background: #AAFFAA}
TD.hd {background: #FFFFFF; color: #339900}
/* End of style section. Generated by AceHTML 04/02/05 */
-->
</style>
</head>
<body>
<?
$year = '2006';
$month = '10';
$a = '2006';
$b = '11';
displayCalendar($year, $month);
include("footer.php");
?>
</body>
</html>
if (!defined('MODULE_FILE')) {
die ("You can't access this file directly...");
}
define('INDEX_FILE', true);
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
include("header.php");
global $db;
function displayCalendar($currYear=0,$currMonth=0) {
//
// get unix time for 1st of the month
//
$day1 = mktime(0,0,0,$currMonth,1,$currYear);
//
// get day of week it falls on
// normally sun is day 0 but we want mon to be day 0
// hence add 6, divide by 7 and get remainder (d+6)%7
//
$dow1 = (date('w',$day1)+6) % 7;
//
// get heading as October 2006
//
$calHead = date('F Y',$day1);
$self = $_SERVER['PHP_SELF'];
echo <<<EOT
<table border="0" cellspacing="0" style="border: 1pt solid silver">
<tr>
<td colspan="7" class="hd">$calHead</td>
</tr>
<tr>
<th class="wd">M</th>
<th class="wd">T</th>
<th class="wd">W</th>
<th class="wd">T</th>
<th class="wd">F</th>
<th class="we">S</th>
<th class="we">S</th>
</tr>
<tr>
EOT;
//
// Blanks until 1st of month
//
for ($d=0;$d<$dow1;$d++) {
$cl = ($d%7==5) || ($d%7==6) ? 'we' : 'wd';
echo "<td class='$cl'> </td>";
}
$c = $dow1;
//
// get dates from the db table
//
$sql = "SELECT did FROM calendar
WHERE YEAR(calendar_date) = '$currYear'
AND MONTH(calendar_date) = '$currMonth'";
$res = mysql_query($sql) or die (mysql_error());
while (list($d) = mysql_fetch_row($res)) {
// new row every 7 days
if ($c%7==0) echo "</tr><tr>";
// set style accordong to weekday or weekend
$cl = ($c%7==5) || ($c%7==6) ? 'we' : 'wd';
// show current day
$st = ($d == $currDay) ? "style='border: 1pt solid #FF0000'" : '';
echo "<td class=\"$cl\" $st>$d</td>\n";
$c++;
}
// finish off the last row of the month
while ($c++ % 7 != 0) {
$cl = ($c%7==6) || ($c%7==0) ? 'we' : 'wd';
echo "<td class='$cl'> </td>";
}
echo "</tr></table>\n";
}
?>
<style type="text/css">
<!--
TH.wd {background: #99CC99}
TH.we {background: #999999}
TD.wea {background: #CCCCCC}
TD.we {background: #EEEEEE; }
TD.wd {background: #EEFFEE}
TD.wda {background: #AAFFAA}
TD.hd {background: #FFFFFF; color: #339900}
/* End of style section. Generated by AceHTML 04/02/05 */
-->
</style>
</head>
<body>
<?
$year = '2006';
$month = '10';
$a = '2006';
$b = '11';
displayCalendar($year, $month);
include("footer.php");
?>
</body>
</html>
En nu? Krijg je foutmeldingen? Of werkt het gewoon? Wat is het probleem?