Mega Code Archive

 
Categories / Php / MySQL Database
 

A what happened on this day class

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. <?php /** * -- * -- 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; } } ?>