. */ /** * Application Database Access Object. This class provides functionality to * load and save applications */ require_once(FILESYSTEMROOTPATH."include/classes/IDao.php"); require_once(FILESYSTEMROOTPATH."events/include/model/Application.php"); class ApplicationDao implements IDao { /** MySQL object */ private $mysql; /** * Default constructor */ public function __construct(MySQL $mysql) { $this->mysql = $mysql; } /** * Load an application by id * * @param int id of the application to be loaded * @return Application containing the data of the requested application, or NULL in case application does not exist */ public function load($id) { $query = "SELECT * FROM events.`applications` WHERE `id`='".$id."'"; if( $this->mysql->query($query) ) { return new Application ($this->mysql->fetchArray()); }else { return array(); } } /** * Load all applications * * @return array of applications */ public function loadAll(){ $query="SELECT * FROM events.`applications`"; if( $this->mysql->query($query) ) { $ret = array(); while( $row = $this->mysql->fetchArray() ) { $ret[ $row['id'] ] = new Application($row); } return $ret; }else { return array(); } } /** * Save or update an application * * @param Application object with the application data * @return boolean true in case of success, false otherwise */ public function saveOrUpdate(IModel $application) { $id=$application->getId(); $eventId=$application->getEventId(); $status=$application->getStatus(); $answerOne=$application->getAnswerOne(); $answerTwo=$application->getAnswerTwo(); $answerThree=$application->getAnswerThree(); $motivation=$application->getMotivation(); $diet=$application->getDiet(); $visa=$application->getVisa(); $passportNumber=$application->getPassportNumber(); $nationality=$application->getNationality(); $placeOfBirth=$application->getPlaceOfBirth(); $remarks=$application->getRemarks(); $query="SELECT * FROM events.`applications` WHERE `id`='".$id."'"; $this->mysql->query($query); if($this->mysql->getNumRows()!=0){ //update existing $query="UPDATE events.`applications` SET `eventId`='".$eventId."', `status`='".$status."', `answerOne`='".$answerOne."', `answerTwo`='".$answerTwo."',`answerThree`='".$answerThree."', `motivation`='".$motivation."', `diet`='".$diet."', `visa`='".$visa."', `passportNumber`='".$passportNumber."', `nationality`='".$nationality."', `placeOfBirth`='".$placeOfBirth."', `remarks`='".$remarks."' WHERE `id`='".$id."'"; return $this->mysql->query($query); } else{ //new application $query="INSERT INTO events.`applications`(`id`, `eventId`, `status`, `answerOne`, `answerTwo`, `answerThree`, `motivation`, `diet`, `visa`, `passportNumber`, `nationality`, `placeOfBirth`, `remarks`) VALUES ('".$id."','".$eventId."','".$status."','".$answerOne."','".$answerTwo."','".$answerThree."', '".$motivation."','".$diet."','".$visa."','".$passportNumber."','".$nationality."','".$placeOfBirth."', '".$remarks."')"; return $this->mysql->query($query); } } }