speedshrew Posted February 19, 2013 Share Posted February 19, 2013 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 < : 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 />'; ?> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.