2016 werkt niet in mijn kalender.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis  van DUin

Dennis van DUin

19/11/2015 21:52:55
Quote Anchor link
Beste mensen,

Ik heb voor het goede doel een website gemaakt met een kalender. Nu heb ik op de website alle activiteiten i nde kalender gezet. (Deze worden uit de mysql databse ingeladen). Maar alle evenementen uit 2016 werken niet en alles uit 2015 wordt netjes weergegeven. Kan iemand mij helpen?

De website met de kalender is:

http://wskrimpenerwaard.nl/acties.php

De codes:

[spoiler]
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
error_reporting(0);
include("./config.php");


/// get current month and year and store them in $cMonth and $cYear variables
(intval($_REQUEST["month"])>0) ? $cMonth = intval($_REQUEST["month"]) : $cMonth = date("m");
(
intval($_REQUEST["year"])>0) ? $cYear = intval($_REQUEST["year"]) : $cYear = date("Y");

// generate an array with all dates with events
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE `event_date` LIKE '".$cYear."-".$maand1."-%'";
$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
while ($row = mysql_fetch_assoc($sql_result)) {
    $events[$row["event_date"]]["title"] = $row["title"];
    $events[$row["event_date"]]["description"] = $row["description"];
}


// calculate next and prev month and year used for next / prev month navigation links and store them in respective variables
$prev_year = $cYear;
$next_year = $cYear;
$prev_month = intval($cMonth)-1;
$next_month = intval($cMonth)+1;

// if current month is December or January month navigation links have to be updated to point to next / prev years
if ($cMonth == 12 ) {
    $next_month = 1;
    $next_year = $cYear + 1;
}
elseif ($cMonth == 1 ) {
    $prev_month = 12;
    $prev_year = $cYear - 1;
}


if ($prev_month<10) $prev_month = '0'.$prev_month;
if ($next_month<10) $next_month = '0'.$next_month;

if ($cMonth == 1) { $maand = "Januari";}
if ($cMonth == 2) { $maand = "Februari";}
if ($cMonth == 3) { $maand = "Maart";}
if ($cMonth == 4) { $maand = "April";}
if ($cMonth == 5) { $maand = "Mei";}
if ($cMonth == 6) { $maand = "Juni";}
if ($cMonth == 7) { $maand = "Juli";}
if ($cMonth == 8) { $maand = "Augustus";}
if ($cMonth == 9) { $maand = "September";}
if ($cMonth == 10) { $maand = "Oktober";}
if ($cMonth == 11) { $maand = "November";}
if ($cMonth == 12) { $maand = "December";}

?>

  <table width="100%">
  <tr>
      <td class="mNav"><a href="javascript:LoadMonth('<?php echo $prev_month; ?>', '<?php echo $prev_year; ?>')"><img src="/img/design/pijllinks1.png"></a> </td>
      <td colspan="5" class="cMonth"><?php echo $maand . ", " . $cYear; ?></td>
      <td class="mNav"><a href="javascript:LoadMonth('<?php echo $next_month; ?>', '<?php echo $next_year; ?>')"><img src="/img/design/pijlrechts1.png"></a></td>
  </tr>
  <tr>
      <td class="wDays">Ma.</td>
      <td class="wDays">Di.</td>
      <td class="wDays">Wo.</td>
      <td class="wDays">Do.</td>
      <td class="wDays">Vr.</td>
      <td class="wDays">Za.</td>
      <td class="wDays">Zo.</td>
  </tr>
<?php
$first_day_timestamp
= mktime(0,0,0,$cMonth,1,$cYear); // time stamp for first day of the month used to calculate
$maxday = date("t",$first_day_timestamp); // number of days in current month
$thismonth = getdate($first_day_timestamp); // find out which day of the week the first date of the month is
$startday = $thismonth['wday'] - 1; // 0 is for Sunday and as we want week to start on Mon we subtract 1

for ($i=0; $i<($maxday+$startday); $i++) {
    
    if (($i % 7) == 0 ) echo "<tr>";
    
    if ($i < $startday) { echo "<td>&nbsp;</td>"; continue; };
    
    $current_day = $i - $startday + 1;
    if ($current_day<10) $current_day = '0'.$current_day;

// set css class name based on number of events for that day
    if ($events[$cYear."-".$cMonth."-".$current_day]<>'') {
        $css='withevent';
        $click = "onclick=\"LoadEvents('".$cYear."-".$cMonth."-".$current_day."')\"";
    }
else {
        $css='noevent';         
        $click = '';
    }

    
    echo "<td class='".$css."'".$click.">". $current_day . "</td>";
    
    if (($i % 7) == 6 ) echo "</tr>";
}

?>

</table>

[/spoiler]

Groetjes,
Dennis
 
PHP hulp

PHP hulp

26/04/2024 15:13:55
 
- Ariën  -
Beheerder

- Ariën -

19/11/2015 22:01:07
Quote Anchor link
Echo eerst eens je query uit $sql.

Offtopic: Spoiler-tags lijken me niet echt nuttig, hoewel we ze niet in ons opmaakcodepakket hebben. ;')
 
Thomas van den Heuvel

Thomas van den Heuvel

19/11/2015 22:45:05
Quote Anchor link
Overweeg om over te stappen op de jquery datepicker plugin.
 
Dennis  van DUin

Dennis van DUin

19/11/2015 22:50:50
Quote Anchor link
- Ariën - op 19/11/2015 22:01:07:
Echo eerst eens je query uit $sql.

Offtopic: Spoiler-tags lijken me niet echt nuttig, hoewel we ze niet in ons opmaakcodepakket hebben. ;')


Ga ik morgen even proberen te doen. Bedankt alvast voor de tip!



Thomas van den Heuvel op 19/11/2015 22:45:05:
Overweeg om over te stappen op de jquery datepicker plugin.

Tsja we willen alleen een kalender zo weergeven met die vakjes zoals het nu gebeurd. Dus ik snap niet helemaal goed ik die datepicker erbij kan gebruiken dan



Toevoeging op 20/11/2015 15:38:45:

Beste mensen,

Ik kom er niet uit, als ik de echo sql erin zet dan krijg ik results 4. Dat er 4 zijn, maar dit blijft zo in elke maand.
 
Pieter R

Pieter R

20/11/2015 16:34:03
Quote Anchor link
Op regel 11 staat -> $maand1
Moet dat niet $cMonth zijn?
 
Dennis  van DUin

Dennis van DUin

20/11/2015 16:42:14
Quote Anchor link
Dat heeft geen ander effect.

Zelf denk ik dat ik alleen alle dingen van 2015 inlaad van current year en niet van 2016 next year?
 
Randy vsf

Randy vsf

20/11/2015 16:52:56
Quote Anchor link
Je haalt alles op uit 2015, en verwacht resultaten uit 2016?

Als je de resultaten wilt van 2016, zal je die ook moeten ophalen.
Gewijzigd op 20/11/2015 16:54:52 door Randy vsf
 
Pieter R

Pieter R

21/11/2015 10:36:06
Quote Anchor link
Beste Dennis,
Ik heb je code lokaal geprobeert en volgens mij werkt die goed.
Kan in iedergeval een link aanmaken in de agenda van 2016.
Ben benieuwd naar het volgende.
Op regel 13 t/m 16 word een array opgebouwd die later gebruikt word.
Als je het volgende na regel 16 zet, wat krijg je dan te zien?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
echo "<pre>";
print_r ( $events );
echo "</pre>";
Gewijzigd op 21/11/2015 10:43:31 door Pieter R
 
Dennis  van DUin

Dennis van DUin

21/11/2015 11:05:47
Quote Anchor link
Pieter R op 21/11/2015 10:36:06:
Beste Dennis,
Ik heb je code lokaal geprobeert en volgens mij werkt die goed.
Kan in iedergeval een link aanmaken in de agenda van 2016.
Ben benieuwd naar het volgende.
Op regel 13 t/m 16 word een array opgebouwd die later gebruikt word.
Als je het volgende na regel 16 zet, wat krijg je dan te zien?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
echo "<pre>";
print_r ( $events );
echo "</pre>";


Beste,

Ik krijg in november en december 2015 alle verschillende evenementen te zien. Maar de evenementen in 2016 werken niet. Ik heb je stukje code er even tussen laten staan op de testwebsite en daar kan je het zelf ook bekijken:

http://logintest.altervista.org/acties.php

Ik hoop dat iemand mij ermee zou kunnen helpen?
Zo ziet de database eruit:

Afbeelding

Groetjes,
Dennis
 
Randy vsf

Randy vsf

21/11/2015 12:34:40
Quote Anchor link
Dennis,

Je zal naar je query moeten kijken. Zoals ik al eerder zei haal je alleen de resultaten op uit 2015.
Als je die van 2016 niet ophaalt, is het niet zo gek dat ze niet op de kalender erbij komen.

Waarom haal je niet gewoon alle resultaten op na vandaag? Dus niet per jaar / maand.
Je wilt immers toch alle evenementen in die agenda kwijt?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
/// get current month and year and store them in $cMonth and $cYear variables
(intval($_REQUEST["month"])>0) ? $cMonth = intval($_REQUEST["month"]) : $cMonth = date("m");
(
intval($_REQUEST["year"])>0) ? $cYear = intval($_REQUEST["year"]) : $cYear = date("Y");?>


Lees de comment die erboven staat!
Gewijzigd op 21/11/2015 12:36:15 door Randy vsf
 
Dennis  van DUin

Dennis van DUin

21/11/2015 12:42:15
Quote Anchor link
Randy Flujowa op 21/11/2015 12:34:40:
Dennis,

Je zal naar je query moeten kijken. Zoals ik al eerder zei haal je alleen de resultaten op uit 2015.
Als je die van 2016 niet ophaalt, is het niet zo gek dat ze niet op de kalender erbij komen.

Waarom haal je niet gewoon alle resultaten op na vandaag? Dus niet per jaar / maand.
Je wilt immers toch alle evenementen in die agenda kwijt?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
/// get current month and year and store them in $cMonth and $cYear variables
(intval($_REQUEST["month"])>0) ? $cMonth = intval($_REQUEST["month"]) : $cMonth = date("m");
(
intval($_REQUEST["year"])>0) ? $cYear = intval($_REQUEST["year"]) : $cYear = date("Y");?>


Lees de comment die erboven staat!


Beste,

Bedankt voor je tip en je hebt ergens gelijk. Als ik bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE `event_date` LIKE '".$cYear."-".$cMonth."-%'";

Verander in:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql = "SELECT * FROM ".$SETTINGS["data_table"]."";


dan krijg ik ook de data van 2016 in mijn agenda. Maar deze worden niet zichtbaar in de vakjes van de maanden.

Je kan dat zien op de link:

http://logintest.altervista.org/acties.php daar zie je de aangepaste code.

Bedankt dat jullie zo helpen mensen!
 
Pieter R

Pieter R

21/11/2015 14:52:08
Quote Anchor link
Probeer eens een evenement te boeken op okt, nov of dec van 2016 en kijk of die zichtbaar word.
Mogelijk valt je '0' van de maand weg bij de intval() op regel 7.
Gewijzigd op 21/11/2015 14:54:44 door Pieter R
 
Thomas van den Heuvel

Thomas van den Heuvel

21/11/2015 17:00:42
Quote Anchor link
Je hebt evenementen die opgehaald worden met een query.

Eerder geplaatste evenementen worden niet correct opgehaald / niet getoond.

Mijn eerste ingeving zou zijn: debug de query, te beginnen met het simpelweg afdrukken hiervan.

(wat Pieter hierboven aangeeft zou in ieder geval al een oorzaak kunnen zijn)

Tevens:

Vandaag wordt er een wijnproeverij georganiseerd bij camping Breedijk in Stolwijk. De toegang bedraagt <wiebertje>20.- euro en u bent van harte welkom!

Niet alle data is UTF-8, blijkbaar.
Gewijzigd op 21/11/2015 17:04:52 door Thomas van den Heuvel
 
Dennis  van DUin

Dennis van DUin

22/11/2015 11:01:42
Quote Anchor link
Beste Pieter,

Je hebt gelijk de 0 valt weg. Want als ik een evenement op 25 november 2016 plan en ik kijk ni mijn agenda dan staat deze er wel goed in. Maar alles van maand 1 tot 9 niet? Iemand enig idee hoe ik dat zou kunnen oplossen?

Thomas bedankt voor je tip ik ga even naar de UTF-8 kijken.
 
Pieter R

Pieter R

22/11/2015 12:35:23
Quote Anchor link
Als je op regel 7 het volgende zet, zou het moeten werken.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
(intval($_REQUEST["month"])>0) ? $cMonth = $_REQUEST["month"] : $cMonth = date("m");

Mogelijk dat de maanden in titel dan wel wegvallen.
Regel 36 t/m 47 komt er dan zo uit te zien.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if ($cMonth == "01") { $maand = "Januari";}
if ($cMonth == "02") { $maand = "Februari";}
// etcetera
Gewijzigd op 22/11/2015 12:36:51 door Pieter R
 
Dennis  van DUin

Dennis van DUin

22/11/2015 13:05:45
Quote Anchor link
Bedankt mensen, het is gelukt! Ik heb dit toegevoegd:

if ($cMonth<10) $cMonth = '0'.$cMonth;

Groetjes,
Dennis
 
Thomas van den Heuvel

Thomas van den Heuvel

22/11/2015 15:09:02
Quote Anchor link
Pro tip: voor dagen van een maand speelt mogelijk hetzelfde probleem.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.