Jump to content

Event calendar modification


acpjax

Recommended Posts

Think i posted this in the wrong section first time

First of thankyou for looking at this post.  Got a quick question.....
Currently i have been trying to add an event calendar to my website so i can show when certian things are availible.  Beyond that i need to make the event calendar unique for each item....

Each item or listing has a unique id $listingid and what i want to do is place a link on each listing that opens a popup that displays the event calendar. the link will pass the value of the $listingid to the pop up event calendar.

What im trying to do is add in another criteria to the basic event calendar tutorial... right now it seems to pull any day that has an event on it.  what i need it to do is pull any day that has an event on it AND is = to $listing id...

table has the following fields
event_id
event_date
event_avalibility
event_listingid

So i need to dispay any day that has an event AND WHERE event_listingid = $listingid

Any help would be greatly appreciated
[code=php:0]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<?php
// Database connection variables
// Be sure to set these to your own connection
$HOST = '************';
$USER = '**********';
$PASS = '**********';
$NAME = '*********'; 

// Connect to MySQL database
$con = mysql_connect($HOST, $USER, $PASS);
if (!$con) {
  // Since the entire script depends on connection, die if connection fails
  die("Error connecting to MySQL database!");
}
mysql_select_db($NAME, $con);

function getEventDays($month, $year) {
  $days = array();
  $sql = mysql_query("SELECT DAY(event_date) AS day, COUNT(event_id) FROM calendar_events WHERE MONTH(event_date) = '$month' AND YEAR(event_date) = '$year' GROUP BY day");

  if (mysql_num_rows($sql) > 0) {
  while ($row = mysql_fetch_array($sql)) $days[] = $row['day'];
  }

  return $days;
}

function drawCalendar($month, $year) {
  // set variables we will need to help with layouts
  $first       = mktime(0,0,0,$month,1,$year); // timestamp for first of the month
  $offset      = date('w', $first); // what day of the week we start counting on
  $daysInMonth = date('t', $first);
  $monthName   = date('F', $first);
  $weekDays    = array('Su', 'M', 'Tu', 'W', 'Th', 'F', 'Sa');
  $eventDays   = getEventDays($month, $year);
   
  // Start drawing calendar
  $out  = "<table id=\"myCalendar\" border =\'1'>\n";
  $out .= "<tr><th colspan=\"7\">$monthName $year</th></tr>\n";
  $out .= "<tr>\n";
  foreach ($weekDays as $wd) $out .= "<td class=\"weekDays\">$wd</td>\n";
   
  $i = 0;
  for ($d = (1 - $offset); $d <= $daysInMonth; $d++) {
    if ($i % 7 == 0) $out .= "<tr>\n"; // Start new row
    if ($d < 1) $out .= "<td class=\"nonMonthDay\">&nbsp;</td>\n";
    else {
      if (in_array($d, $eventDays)) {
        $out .= "<td class=\"monthDay\" td bgcolor=\"red\">\n";
        $out .= "<a href=\"?year=$year&amp;month=$month&amp;day=$d\">$d</a>\n";
        $out .= "</td>\n";
      } else $out .= "<td class=\"monthDay\">$d</td>\n";
    }
    ++$i; // Increment position counter
    if ($i % 7 == 0) $out .= "</tr>\n"; // End row on the 7th day
  }
   
  // Round out last row if we don't have a full week
  if ($i % 7 != 0) {
    for ($j = 0; $j < (7 - ($i % 7)); $j++) {
      $out .= "<td class=\"nonMonthDay\">&nbsp;</td>\n";
    }
    $out .= "</tr>\n";
  }
   
  $out .= "</table>\n";
     
    return $out;
}

$year  = isset($_GET['year']) ? $_GET['year'] : date('Y');
$month = isset($_GET['month']) ? $_GET['month'] : date('m');

echo drawCalendar($month, $year);


// Previous month link
$prevTS = strtotime("$year-$month-01 -1 month"); // timestamp of the first of last month
$pMax = date('t', $prevTS);
$pDay = ($day > $pMax) ? $pMax : $day;
list($y, $m) = explode('-', date('Y-m', $prevTS));
echo "<p>\n";
echo "<a href=\"?year=$year&amp;month=$m&amp;day=$pDay\">&laquo; Prev</a> |\n";

// Next month link
$nextTS = strtotime("$year-$month-01 +1 month");
$nMax = date('t', $nextTS);
$nDay = ($day > $nMax) ? $nMax : $day;
list($y, $m) = explode('-', date('Y-m', $nextTS));
echo "<a href=\"?year=$y&amp;month=$m&amp;day=$nDay\">Next &raquo;</a>\n";
echo "</p>\n";


// Calendar is done, let's list events for selected day
$sql = mysql_query("
SELECT *
FROM calendar_events
WHERE event_date = '".$year."-".$month."-".$day."'
AND event_listingid = ".$listingid."
");
if (mysql_num_rows($sql) > 0) {
  while ($e = mysql_fetch_array($sql)) {
    echo "<p>$e[event_avalibility]</p>\n";
  }
} else {
  echo "<p>No events today</p>\n";
}
?>
</body>
</html>
[/code]
Link to comment
https://forums.phpfreaks.com/topic/28524-event-calendar-modification/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.