public function getOne($id) { $req = $this->pdo->prepare(' SELECT t.*, ma.pseudo auteur, mm.pseudo modificateur FROM technote t INNER JOIN membre ma ON ma.id_membre=t.id_auteur LEFT JOIN membre mm ON mm.id_membre=t.id_modificateur WHERE id_technote = :id_technote '); $req->execute(array('id_technote' => $id)); if (($res = $req->fetch()) === false) { return false; } $decrireDAO = new DecrireDAO(BDD::getInstancePDO()); $res->motsCles = $decrireDAO->getAllForOneTechnote($id); $commentaireDAO = new CommentaireDAO(BDD::getInstancePDO()); $res->commentaires = $commentaireDAO->getTreeForOneTechnote($id, NULL); return new Technote(get_object_vars($res)); }
public function getTreeForOneTechnote($id_technote, $id_commentaire_parent) { $res = array(); $op = empty($id_commentaire_parent) ? 'IS' : '='; $req = $this->pdo->prepare('SELECT c.*, ma.pseudo auteur, mm.pseudo modificateur FROM commentaire c INNER JOIN membre ma ON ma.id_membre=c.id_auteur LEFT JOIN membre mm ON mm.id_membre=c.id_modificateur WHERE id_technote = :id_technote AND id_commentaire_parent ' . $op . ' :id_commentaire_parent'); $req->execute(array('id_technote' => $id_technote, 'id_commentaire_parent' => $id_commentaire_parent)); $commentaireDAO = new CommentaireDAO(BDD::getInstancePDO()); foreach ($req->fetchAll() as $ligne) { $ligne->commentaires = $commentaireDAO->getTreeForOneTechnote($id_technote, $ligne->id_commentaire); $res[] = new Commentaire(get_object_vars($ligne)); } return $res; }