kalender acara tidak menampilkan acara

Saya membuat kalender acara PHP. Kalender saya berfungsi dengan sempurna namun tidak ada acara saya yang ditampilkan (saat ini saya hanya memiliki satu acara uji coba pada 28/02/2013)

Saya merasa ini ada hubungannya dengan DATE_FORMAT, tapi bantuan apa pun yang bisa saya dapatkan akan sangat dihargai.

Anda dapat melihat kalender di http://nitelifeconcepts.com/scrg/calendar.php

Kode asli berasal dari http://davidwalsh.name/php-event-calendar. membaca komentar sepertinya orang lain memiliki masalah yang sama namun tidak ada solusi mereka yang berhasil untuk saya

Dan kode saya:

<html>
<head>
<title>SCRG EVENTS</title>
<link rel="stylesheet" type="text/css" href="/idcalendar.css">
<script type="text/javascript">
    var GB_ROOT_DIR = "http://nitelifeconcepts.com/scrg/greybox/";
</script>
<script type="text/javascript" src="greybox/AJS.js"></script>
<script type="text/javascript" src="greybox/AJS_fx.js"></script>
<script type="text/javascript" src="greybox/gb_scripts.js"></script>
<link href="/idgreybox/gb_styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
/* Open up a connection to the mysql database on the same server as website */
$db_link = mysql_connect(XXXX, XXX, XXX)
    or die("Unable to connect to mysql database");

/* Select our database (there is more than one in my server) */
mysql_select_db("db156115_scrg", $db_link);
/* draws a calendar */
function draw_calendar($month,$year,$events = array()){

  /* draw table */
  $calendar = '<table cellpadding="0" cellspacing="0" class="calendar">';

  /* table headings */
  $headings =   array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
  $calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td   class="calendar-day-head">',$headings).'</td></tr>';

  /* days and weeks vars now ... */
  $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();

  /* row for week one */
  $calendar.= '<tr class="calendar-row">';

  /* print "blank" days until the first of the current week */
  for($x = 0; $x < $running_day; $x++):
    $calendar.= '<td class="calendar-day-np">&nbsp;</td>';
    $days_in_this_week++;
  endfor;

  /* keep going with days.... */
  for($list_day = 1; $list_day <= $days_in_month; $list_day++):
    $calendar.= '<td class="calendar-day"><div style="position:relative;height:100px;">';
      /* add in the day number */
      $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;

  /* finish the rest of the days in the week */
  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;

  /* final row */
  $calendar.= '</tr>';


  /* end the table */
  $calendar.= '</table>';

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

  /* all done, return result */
  return $calendar;
}

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

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

/* select month control */
$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>';

/* select year control */
$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" control */
$next_month_link = '<a href="/id?month='.($month != 12 ? $month + 1 : 1).'&year='.($month !=   12 ? $year : $year + 1).'" class="control">Next Month &gt;&gt;</a>';

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


/* bringing the controls together */
$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>';

/* get all events for the given month */
$events = array();
$query = "SELECT Title, DATE_FORMAT(eventDate,'%y-%m-%d') AS eventDate FROM eventcalendar    WHERE eventDate LIKE '$year-$month'";
$result = mysql_query($query,$db_link) or die('cannot get results!');
while($row = mysql_fetch_assoc($result)) {
  $events[$row['eventDate']][] = $row;
}

echo '<h2 style="float:left; padding-  right:30px;">'.date('F',mktime(0,0,0,$month,1,$year)).' '.$year.'</h2>';
echo '<div style="float:left;">'.$controls.'</div>';
echo '<div style="clear:both;"></div>';
echo draw_calendar($month,$year,$events);
?>
</body>
</html>

Sekali lagi terima kasih atas bantuan apa pun yang dapat Anda tawarkan


person pistone10    schedule 28.02.2013    source sumber
comment
PHP date('Y') mengembalikan 4 digit tahun, MySQL DATE_FORMAT's %y mengembalikan 2 digit tahun. Saya pikir ini mungkin masalah Anda. Saya tidak dapat memastikannya tanpa menguji semua kode Anda. Bisakah Anda mencoba menggunakan %Y dalam panggilan DATE_FORMAT?   -  person andyb    schedule 28.02.2013
comment
Anda mungkin sebaiknya tidak memposting kata sandi basis data Anda secara online. (Bahkan jika @andyb mengeditnya, Anda mungkin masih harus mengubah kata sandi ini sekarang, karena kata sandi tersebut ada dalam riwayat revisi postingan ini selamanya.)   -  person Patrick James McDougle    schedule 28.02.2013
comment
Anda juga tidak boleh menggunakan fungsi keluarga mysql karena fungsi tersebut tidak akan digunakan lagi. Silakan gunakan mysqli atau PDO superior. php.net/manual/en/intro.mysql.php   -  person Patrick James McDougle    schedule 28.02.2013
comment
Tempat yang bagus @PatrickJamesMcDougle. Saya telah mengeditnya sehingga goresan apa pun semoga tidak menemukannya. @pistone10 Saya sangat menyarankan Anda mengubah sandi database Anda sekarang (dan pilih yang lebih aman!)   -  person andyb    schedule 28.02.2013
comment
Panggilan yang bagus untuk kata sandinya kawan, saya terjaga sepanjang malam dan bahkan tidak memikirkannya   -  person pistone10    schedule 01.03.2013
comment
@andyb terima kasih atas sarannya, meskipun menurut saya hal itu berpengaruh, sepertinya ada masalah yang lebih besar karena masih tidak menampilkan apa pun di kalender   -  person pistone10    schedule 01.03.2013


Jawaban (1)


Coba ubah sedikit pengaturan tanggal Anda menjadi ini:

if(isset($_GET['month'])) {
$month = $_GET['month'];
} else {
$month = date('m');
}
$month = str_pad($month,2,0,STR_PAD_LEFT);

if(isset($_GET['year'])) {
$year = $_GET['year'];
} else {
$year = date('Y');
}

Dan singkirkan bagian ini...

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

Saya harus memperingatkan Anda bahwa saya bukan seorang pembuat kode!!!

person Strawberry    schedule 28.02.2013
comment
Hm, kalau begitu mungkin ada skrip kalender acara yang lebih baik dan terkini di luar sana! - person Strawberry; 01.03.2013