a nice and easy way to implement a class for "What happened today?" for websites.
Note that if the class cannot find an event on the current date, it will take out the last occurence of an event.
/**
* --
* -- Table structure for table `events`
* --
*
* CREATE TABLE `events`
* (
* `id` int(8) NOT NULL auto_increment,
* `date` date NOT NULL default '0000-01-01',
* `event` text NOT NULL,
* PRIMARY KEY (`id`)
* );
**/
class eventClass
{
var $day;
var $table = "events";
var $columnText = "event";
var $columnID = "id";
var $columnDate = "date";
var $myEventArray = array
(
"eventID" => array(),
"eventText" => array(),
"eventDate" => array(),
);
/**
* @return Array/Boolean
* @desc Returns the events array from database. Return false if failed.
*/
function get()
{
$this->checkDate(date('d'));
return $this->myEventArray;
}
/**
* @return Boolean
* @param String $text
* @param Integer $month
* @param Integer $day
* @param Integer $year
* @desc Inserts a new event into database. Returns false if failed.
*/
function set($text, $month, $day, $year)
{
$date = $year . "-" . $month . "-" . $day;
$query = "insert into " . $this->table . "(" . $this->columnText . ", " . $this->columnDate . ") values('" . $text . "', '" . $date . "')";
$result = mysql_query($query);
if($result)
{
if(mysql_affected_rows())
return true;
else
return false;
}
else
return false;
}
/* FUNCTIONS*/
/**
* @return Boolean
* @param Integer $id
* @desc Deletes event from database
*/
function delete($id)
{
$query = "delete from " . $this->table . " where " . $this->columnID . "=" . $id;
$result = mysql_query($query);
if($result)
{
if(mysql_affected_rows())
return true;
else
return false;
}
else
return false;
}
/**
* @return Boolean
* @param Integer $id
* @param String $text
* @desc Updates selected row in database. Return false if failed.
*/
function update($id, $text)
{
$query = updateQuery($this->table, $this->columnText, $text, $this->columnID, $id);
$result = mysql_query($query);
if($result)
{
if(mysql_affected_rows())
return true;
else
return false;
}
else
return false;
}
/**
* @return Boolean
* @param Integer $month
* @desc Checks event data in database and sets an array of the last recent month and day match. Returns false if failed.
*/
function checkDate($month)
{
$this->day = date('d');
$result = $this->queryMonth($month);
if($result)
{
if(mysql_fetch_array($result))
{
$this->checkDay($month);
$this->getArray($month, $this->day);
return true;
}
else
{
if($month == 1)
$this->checkDate(12);
else
{
$month--;
$this->checkDate($month);
}
}
}
else
return false;
}
/**
* @return Boolean
* @param Integer $month
* @desc Checks last recent day in event dates
*/
function checkDay($month)
{
$result = $this->queryDay($month, $this->day);
if($result)
{
if(mysql_fetch_array($result))
return true;
else
{
if($this->day == 1)
{
$this->day = 31;
$this->checkDay($month);
}
else
{
$this->day--;
$this->checkDay($month);
}
}
}
else
return false;
}
/**
* @return Boolean
* @param integer $month
* @param integer $day
* @desc Sets the event Array. Returns false if failes.
*/
function getArray($month, $day)
{
$query = "select * from " . $this->table . " where " . $this->columnDate . " like '%-%" . $month . "-%" . $day . "'";
$result = mysql_query($query);
if($result)
{
if($myrow = mysql_fetch_array($result))
{
$index = 0;
do
{
$this->myEventArray["eventID"][$index] = $myrow[$this->columnID];
$this->myEventArray["eventText"][$index] = $myrow[$this->columnText];
$this->myEventArray["eventDate"][$index] = $myrow[$this->columnDate];
$index++;
}while($myrow = mysql_fetch_array($result));
return true;
}
else
return false;
}
else
return false;
}
/**
* @return Recource/Boolean
* @param Integer $month
* @param Integer $day
* @desc Gives apropriate recource ID. Returns false if failed
*/
function queryDay($month, $day)
{
$query = "select DATE_FORMAT(date, '%d') as day from " . $this->table . " where " . $this->columnDate . " like '%-%" . $month . "-%" . $day . "'";
$result = mysql_query($query);
if($result)
return $result;
else
return false;
}
/**
* @return Recource/Boolean
* @param Integer $month
* @desc Gives apropriate recource ID. Returns false if failed
*/
function queryMonth($month)
{
$query = "select " . $this->columnDate . " from " . $this->table . " where " . $this->columnDate . " like '%-%" . $month . "-%'";
$result = mysql_query($query);
if($result)
return $result;
else
return false;
}
}
?>