Calender Script
Ben bezig met de aanpassing van een bestaand script (kalender). Enige probleem is dat het bestaande script gebruik maakt van een database met voor zowel de dag, de maand en het jaar een eigen veld dus 3 velden terwijl in mijn eigen database ik gebruik maak van een data veld 0000-00-00.
Ik zit nu dus even vast om alles te kunnen weergeven aangezien hij geen data ophaalt uit m'n database. Iemand een hint?
Code verwijderd! Zou je enkel relevante code willen plaatsen?![/modedit]
Gewijzigd op 01/02/2011 11:02:37 door Bas IJzelendoorn
Sorry maar zoveel code ga ik niet lezen. Kan je je code niet even inkorten naar het relevante deel?
- Aar - op 01/02/2011 00:54:54:
3 meter scrollen verder....
Sorry maar zoveel code ga ik niet lezen. Kan je je code niet even inkorten naar het relevante deel?
Sorry maar zoveel code ga ik niet lezen. Kan je je code niet even inkorten naar het relevante deel?
Zet het gelijk ook even tussen code-tags. En waarom 3 keer hetzelfde posten in korte tijd.
- SanThe - op 01/02/2011 00:57:50:
Zet het gelijk ook even tussen code-tags. En waarom 3 keer hetzelfde posten in korte tijd.
- Aar - op 01/02/2011 00:54:54:
3 meter scrollen verder....
Sorry maar zoveel code ga ik niet lezen. Kan je je code niet even inkorten naar het relevante deel?
Sorry maar zoveel code ga ik niet lezen. Kan je je code niet even inkorten naar het relevante deel?
Zet het gelijk ook even tussen code-tags. En waarom 3 keer hetzelfde posten in korte tijd.
Volgens mij is dat nog wel en bug...
Maar goed, mijn advies luid:.....
Opnieuw schrijven.
Dit is de db layout die ik wil aanpassen. Heb al veld gemaakt met
CREATE TABLE IF NOT EXISTS `calendar_events` (
`event_id` int(5) unsigned NOT NULL AUTO_INCREMENT,
`event_day` int(2) NOT NULL DEFAULT '0',
`event_month` int(2) NOT NULL DEFAULT '0',
`event_year` int(4) NOT NULL DEFAULT '0',
`event_time` varchar(5) NOT NULL DEFAULT '',
`event_title` varchar(200) NOT NULL DEFAULT '',
`volledigedatum` date NOT NULL,
PRIMARY KEY (`event_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
Code om met DB te verbinden
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
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
<?php
setlocale(LC_ALL, 'nl_NL');
$DBHost = "localhost";
$DBName = "";
$DBUser = "";
$DBPass = "";
$TBL_PR = "_";
$db_connection = mysql_connect ($DBHost, $DBUser, $DBPass) OR die (mysql_error());
$db_select = mysql_select_db ($DBName) or die (mysql_error());
$db_table = $TBL_PR . "events";
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$time_start = getmicrotime();
IF(!isset($_GET['year'])){
$_GET['year'] = date("Y");
}
IF(!isset($_GET['month'])){
$_GET['month'] = date("n")+1;
}
$month = addslashes($_GET['month'] - 1);
$year = addslashes($_GET['year']);
$query = "SELECT event_id,event_title,event_day,event_time FROM $db_table WHERE event_month='$month' AND event_year='$year' ORDER BY event_time";
$query_result = mysql_query ($query);
while ($info = mysql_fetch_array($query_result))
{
$day = $info['event_day'];
$event_id = $info['event_id'];
$events[$day][] = $info['event_id'];
$event_info[$event_id]['0'] = substr($info['event_title'], 0, 8);;
$event_info[$event_id]['1'] = $info['event_time'];
}
$todays_date = date("j");
$todays_month = date("n");
$days_in_month = date ("t", mktime(0,0,0,$_GET['month'],0,$_GET['year']));
$first_day_of_month = date ("w", mktime(0,0,0,$_GET['month']-1,1,$_GET['year']));
$first_day_of_month = $first_day_of_month + 1;
$count_boxes = 0;
$days_so_far = 0;
IF($_GET['month'] == 13){
$next_month = 2;
$next_year = $_GET['year'] + 1;
} ELSE {
$next_month = $_GET['month'] + 1;
$next_year = $_GET['year'];
}
IF($_GET['month'] == 2){
$prev_month = 13;
$prev_year = $_GET['year'] - 1;
} ELSE {
$prev_month = $_GET['month'] - 1;
$prev_year = $_GET['year'];
}
?>
setlocale(LC_ALL, 'nl_NL');
$DBHost = "localhost";
$DBName = "";
$DBUser = "";
$DBPass = "";
$TBL_PR = "_";
$db_connection = mysql_connect ($DBHost, $DBUser, $DBPass) OR die (mysql_error());
$db_select = mysql_select_db ($DBName) or die (mysql_error());
$db_table = $TBL_PR . "events";
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$time_start = getmicrotime();
IF(!isset($_GET['year'])){
$_GET['year'] = date("Y");
}
IF(!isset($_GET['month'])){
$_GET['month'] = date("n")+1;
}
$month = addslashes($_GET['month'] - 1);
$year = addslashes($_GET['year']);
$query = "SELECT event_id,event_title,event_day,event_time FROM $db_table WHERE event_month='$month' AND event_year='$year' ORDER BY event_time";
$query_result = mysql_query ($query);
while ($info = mysql_fetch_array($query_result))
{
$day = $info['event_day'];
$event_id = $info['event_id'];
$events[$day][] = $info['event_id'];
$event_info[$event_id]['0'] = substr($info['event_title'], 0, 8);;
$event_info[$event_id]['1'] = $info['event_time'];
}
$todays_date = date("j");
$todays_month = date("n");
$days_in_month = date ("t", mktime(0,0,0,$_GET['month'],0,$_GET['year']));
$first_day_of_month = date ("w", mktime(0,0,0,$_GET['month']-1,1,$_GET['year']));
$first_day_of_month = $first_day_of_month + 1;
$count_boxes = 0;
$days_so_far = 0;
IF($_GET['month'] == 13){
$next_month = 2;
$next_year = $_GET['year'] + 1;
} ELSE {
$next_month = $_GET['month'] + 1;
$next_year = $_GET['year'];
}
IF($_GET['month'] == 2){
$prev_month = 13;
$prev_year = $_GET['year'] - 1;
} ELSE {
$prev_month = $_GET['month'] - 1;
$prev_year = $_GET['year'];
}
?>
Script om dropdown weer te geven zodoende een selectie van maand kan gebeuren.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<select name="month" id="month" onChange="MM_jumpMenu('parent',this,0)">
<?
for ($i = 1; $i <= 12; $i++) {
$link = $i+1;
IF($_GET['month'] == $link){
$selected = "selected";
} ELSE {
$selected = "";
}
echo "<option value=\"index.php?month=$link&year=$_GET[year]\" $selected>" . date ("F", mktime(0,0,0,$i,1,$_GET['year'])) . "</option>\n";
}
?>
</select>
<select name="year" id="year" onChange="MM_jumpMenu('parent',this,0)">
<?
for ($i = 2009; $i <= 2012; $i++) {
IF($i == $_GET['year']){
$selected = "selected";
} ELSE {
$selected = "";
}
echo "<option value=\"index.php?month=$_GET[month]&year=$i\" $selected>$i</option>\n";
}
?>
</select>
<?
for ($i = 1; $i <= 12; $i++) {
$link = $i+1;
IF($_GET['month'] == $link){
$selected = "selected";
} ELSE {
$selected = "";
}
echo "<option value=\"index.php?month=$link&year=$_GET[year]\" $selected>" . date ("F", mktime(0,0,0,$i,1,$_GET['year'])) . "</option>\n";
}
?>
</select>
<select name="year" id="year" onChange="MM_jumpMenu('parent',this,0)">
<?
for ($i = 2009; $i <= 2012; $i++) {
IF($i == $_GET['year']){
$selected = "selected";
} ELSE {
$selected = "";
}
echo "<option value=\"index.php?month=$_GET[month]&year=$i\" $selected>$i</option>\n";
}
?>
</select>
Code voor kalender effectief weer te geven
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
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
<?
for ($i = 1; $i <= $first_day_of_month-1; $i++) {
$days_so_far = $days_so_far + 1;
$count_boxes = $count_boxes + 1;
echo "<td width='100' height='100' class=\"beforedayboxes\"></td>\n";
}
for ($i = 1; $i <= $days_in_month; $i++) {
$days_so_far = $days_so_far + 1;
$count_boxes = $count_boxes + 1;
IF($_GET['month'] == $todays_month+1){
IF($i == $todays_date){
$class = "highlighteddayboxes";
} ELSE {
$class = "dayboxes";
}
} ELSE {
IF($i == 1){
$class = "highlighteddayboxes";
} ELSE {
$class = "dayboxes";
}
}
echo "<td width=\"100\" height=\"100\" class=\"$class\">\n";
$link_month = $_GET['month'] - 1;
echo "$i <a href=\"event_add.php?day=$i&month=$link_month&year=$_GET[year]\">Add</a><br>";
IF(isset($events[$i])){
while (list($key, $value) = each ($events[$i])) {
echo " " . $event_info[$value]['1'] . " " . $event_info[$value]['0'] . "\n<br>\n";
}
}
echo "</td>\n";
IF(($count_boxes == 7) AND ($days_so_far != (($first_day_of_month-1) + $days_in_month))){
$count_boxes = 0;
echo "</TR><TR valign=\"top\">\n";
}
}
$extra_boxes = 7 - $count_boxes;
for ($i = 1; $i <= $extra_boxes; $i++) {
echo "<td width=\"100\" height=\"100\" class=\"afterdayboxes\"></td>\n";
}
$time_end = getmicrotime();
$time = round($time_end - $time_start, 3);
?>
for ($i = 1; $i <= $first_day_of_month-1; $i++) {
$days_so_far = $days_so_far + 1;
$count_boxes = $count_boxes + 1;
echo "<td width='100' height='100' class=\"beforedayboxes\"></td>\n";
}
for ($i = 1; $i <= $days_in_month; $i++) {
$days_so_far = $days_so_far + 1;
$count_boxes = $count_boxes + 1;
IF($_GET['month'] == $todays_month+1){
IF($i == $todays_date){
$class = "highlighteddayboxes";
} ELSE {
$class = "dayboxes";
}
} ELSE {
IF($i == 1){
$class = "highlighteddayboxes";
} ELSE {
$class = "dayboxes";
}
}
echo "<td width=\"100\" height=\"100\" class=\"$class\">\n";
$link_month = $_GET['month'] - 1;
echo "$i <a href=\"event_add.php?day=$i&month=$link_month&year=$_GET[year]\">Add</a><br>";
IF(isset($events[$i])){
while (list($key, $value) = each ($events[$i])) {
echo " " . $event_info[$value]['1'] . " " . $event_info[$value]['0'] . "\n<br>\n";
}
}
echo "</td>\n";
IF(($count_boxes == 7) AND ($days_so_far != (($first_day_of_month-1) + $days_in_month))){
$count_boxes = 0;
echo "</TR><TR valign=\"top\">\n";
}
}
$extra_boxes = 7 - $count_boxes;
for ($i = 1; $i <= $extra_boxes; $i++) {
echo "<td width=\"100\" height=\"100\" class=\"afterdayboxes\"></td>\n";
}
$time_end = getmicrotime();
$time = round($time_end - $time_start, 3);
?>
Toevoeging op 01/02/2011 13:00:16:
Ik ben met dit script eigenlijk gewoon op zoek naar een kalender waarbij ik items kan plaatsen in de kalender. Ik heb nu al een db met zeer veel input maar daar staat alle data in het 0000-00-00 formaat.
Het script dat ik hier heb is helaas met 3 velden.
Ik zou zeggen, maak er dan één veld van.
- SanThe - op 01/02/2011 13:56:18:
En wat wil je nou van ons?
Ik zou zeggen, maak er dan één veld van.
Ik zou zeggen, maak er dan één veld van.
heb ik geprobeerd maar dan vind hij logischerwijs geen enkel item meer terug. Kan ik op bepaalde manier de informatie die nu uit de 3 velden gehaald wordt uit 1 veld halen (vb splitsen ofzo?)