$val ) { if ( property_exists($this, $key) ) $this->$key = $val; } } $this->id = (int) $this->id; } public function checkFields() { if ( !isset($this->titre) ) throw new MyException ('Le champ titre n\'est pas rempli !'); if ( !isset($this->contenu) ) throw new MyException ('Le champ contenu n\'est pas rempli !'); } } class News { private $db; private $flag = FALSE; public function __tostring() { return 'toto'; } public function __construct() { $this->db = singleton::getInstance('mysql','mysql'); } public function addNews(NewsObject $object) { $objet->checkFields(); $this->db->query('INSERT INTO news (titre, contenu, auteur) VALUES (\''.$object->title.'\', \''.$object->content.'\', \''.$object->login.'\')'); } public function delNews($id) { $this->db->query('DELETE FROM news WHERE id=\''.$id.'\' LIMIT 1'); } public function updateNews(NewsObject $object) { $this->db->query('UPDATE news SET titre=\''.$object->title.'\', contenu=\''.$object->content.'\', auteur=\''.$object->login.'\', WHERE id=\''.$object->id.'\''); } public function getSeveralNews($start, $limit) { if (!$this->flag) { $this->db->query('SELECT DATE_FORMAT(time,"%d-%m-%Y à %Hh%i") as date, titre, auteur, contenu, id FROM news ORDER BY id DESC LIMIT '.$start.', '.$limit.''); $this->flag = TRUE; } return $this->toObject($this->db->getArray()); } public function getOneNews($id) { $this->db->query('SELECT DATE_FORMAT(time,"%d-%m-%Y à %Hh%i") as date, titre, auteur, contenu, id FROM news WHERE id = \''.$id.'\''); return $this->toObject($this->db->getArray()); } public function countAllNews() { $this->db->query('SELECT COUNT(id) FROM news'); $data = $this->db->getRow(); return ((int)$data[0]); } private function toObject($array) { if ( $array == FALSE ) { $this->flag = FALSE; return FALSE; } else { return new NewsObject($array); } } } ?>