0

我已经复制了日历中事件的代码。日历显示正确,但我存储在 eventcalendar 表中的事件未显示在日历中。有人可以帮忙吗?

    <?php require_once("global.inc.php"); ?>
    <html>
    <head>
    <title>EVENTS</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <?php

    function draw_calendar($month,$year,$events = array()){

     $calendar = '<table cellpadding="0" cellspacing="0" class="calendar">';
     $headings =   array('Sun','Mon','Tues','Wed','Thurs','Fri','Sat');
     $calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td   class="calendar-day-head">',$headings).'</td></tr>';

      $running_day = date('w',mktime(0,0,0,$month,1,$year));
      $days_in_month = date('t',mktime(0,0,0,$month,1,$year));
      $days_in_this_week = 1;
      $day_counter = 0;
      $dates_array = array();

      $calendar.= '<tr class="calendar-row">';

        for($x = 0; $x < $running_day; $x++):
        $calendar.= '<td class="calendar-day-np">&nbsp;</td>';
        $days_in_this_week++;
        endfor;

        for($list_day = 1; $list_day <= $days_in_month; $list_day++):
        $calendar.= '<td class="calendar-day">
        <div style="position:relative;height:100px;">';
          $calendar.= '<div class="day-number">'.$list_day.'</div>';

        $event_day = $year.'-'.$month.'-'.$list_day;
          if(isset($events[$event_day])) {
            foreach($events[$event_day] as $event) {
              $calendar.= '<div class="event">'.$event['Title'].'</div>';
            }
          }
          else {
            $calendar.= str_repeat('<p>&nbsp;</p>',2);
          }
        $calendar.= '</div></td>';
        if($running_day == 6):
          $calendar.= '</tr>';
          if(($day_counter+1) != $days_in_month):
            $calendar.= '<tr class="calendar-row">';
          endif;
          $running_day = -1;
          $days_in_this_week = 0;
        endif;
        $days_in_this_week++; $running_day++; $day_counter++;
      endfor;

      if($days_in_this_week < 8):
        for($x = 1; $x <= (8 - $days_in_this_week); $x++):
          $calendar.= '<td class="calendar-day-np">&nbsp;</td>';
        endfor;
      endif;

      $calendar.= '</tr>';
      $calendar.= '</table>';

      $calendar = str_replace('</td>','</td>'."\n",$calendar);
      $calendar = str_replace('</tr>','</tr>'."\n",$calendar);

      return $calendar;
    }

    function random_number() {
      srand(time());
      return (rand() % 7);
    }

    $month = ($_GET['month'] ? $_GET['month'] : date('m'));
    $year = ($_GET['year'] ? $_GET['year'] : date('Y'));
    if($month < 10)
    $month = '0'.$month;


    $select_month_control = '<select name="month" id="month">';
    for($x = 1; $x <= 12; $x++) {
    $select_month_control.= '<option value="'.$x.'"'.($x != $month ? '' : '   selected="selected"').'>'.date('F',mktime(0,0,0,$x,1,$year)).'</option>';
    }
    $select_month_control.= '</select>';

    $year_range = 7;
    $select_year_control = '<select name="year" id="year">';
    for($x = ($year-floor($year_range/2)); $x <= ($year+floor($year_range/2)); $x++) {
      $select_year_control.= '<option value="'.$x.'"'.($x != $year ? '' : '    selected="selected"').'>'.$x.'</option>';
    }
    $select_year_control.= '</select>';

    $next_month_link = '<a href="?month='.($month != 12 ? $month + 1 : 1).'&year='.($month !=   12 ? $year : $year + 1).'" class="control">Next Month &gt;&gt;</a>';

    $previous_month_link = '<a href="?month='.($month != 1 ? $month - 1 : 12).'&year='.($month   != 1 ? $year : $year - 1).'" class="control">&lt;&lt;   Previous Month</a>';



    $controls = '<form method="get">'.$select_month_control.$select_year_control.'&nbsp;<input type="submit" name="submit" value="Go"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$previous_month_link.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.  $next_month_link.' </form>';


 $events = array();
    $query = "SELECT title, DATE_FORMAT(eventdate,'%Y-%m-%D') AS eventdate FROM eventcalendar WHERE eventdate LIKE '$year-$month%'";
    $result = mysql_query($query) or die('cannot get results!');
    while($row = mysql_fetch_assoc($result)) {
        $events[$row['eventdate']][] = $row;
    }

    echo '<h2>.date('F',mktime(0,0,0,$month,1,$year)).' '.$year.'</h2>';
    echo $controls;
    echo draw_calendar($month,$year,$events);
    ?>
    </body>
    </html>
4

0 回答 0