Jump to content

Event Calendar script help requested


speedshrew

Recommended Posts

Hi guys and girls,

 

Am working on this tutorial for an events calendar, ajusting as I go for bugs etc, however, the last 4 echo statements are throwing up T-STRING errors and I am frankly stumped. Any help you can give would be much apprichated! Ive pasted the whole code so that if theres an error on another lne thats causing it.

<?php

/* Open up a connection to the mysql database on the same server as website */

$db_link = mysql_connect("localhost", "root", "") or die("Unable to connect to mysql database");

/* Select our database (there is more than one in my server) */

mysql_select_db("trains", $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"> </td>';

$days_in_this_week++;

endfor;

/* keep going with days.... */

for($list_day = 1; $list_day <= $days_in_month; $list_day++):

$calendar.= '';

/* add leading zero in the day number */

if($list_day < 10) {

$list_day = str_pad($list_day, 2, '0', STR_PAD_LEFT);

}

/* add leading zero in the month number */

if($month < 10) {

$month = str_pad($month, 2, '0', STR_PAD_LEFT);

}

$event_day = $year.'-'.$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;

echo $event_day;

echo "<br />"; if(isset($events[$event_day])) {

foreach($events[$event_day] as $event) {

$calendar.= '<div class="event">'.$event['title'].'</div>';

}

}

else {

$calendar.= str_repeat('<p> </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"> </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 = (int) (isset($_GET['month']) ? $_GET['month'] : date('m'));$year = (int) (isset($_GET['year']) ? $_GET['year'] : date('Y'));

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

/* "previous month" control */

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

/* bringing the controls together */

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

/* get all events for the given month I had to rewrite this query to get anything usable out of the mysql database we already had. */

$events = array();

$query = SELECT event_title, event_shortdesc, event_date DATE_FORMAT(Date,'%Y-%m-%d') AS Date

FROM calendar_events

WHERE Date LIKE '$year-$month%'

/* verify the query is correct */

echo "<hr />";

echo "<br />";

$result = mysql_query($query,$db_link) or die('error 2');while($row = mysql_fetch_assoc($result)) {

$events[$row['event_date']][] = $row;

echo $result;

/* verify that the query gets results.

Also generates a list of this months events */

echo $row['event_name']." ----- ".$row['event_shortdesc']." ----- ".$row['event_date'];"

}

echo '<h2 style='float:left; padding-right:30px;">'.date('F',mktime(0,0,0,$month,1,$year)).' '.$year';

echo '<div style='float:left;>.$controls. `</div>`;

echo '<div style='clear:both'> </div>';

echo draw_calendar($month,$year,$events);

echo '<br /><br />';

?>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.