UID du sujet en question * * @return subject Tableau contenant les donnees du sujet s'il existe sinon retourne FALSE * */ public static function getById($id_subject){ /* [1] On effectue la requete =========================================================*/ $getSubject = Database::getPDO()->prepare("SELECT idSujet, pseudo, prenom, nom, id_facebook, telephone FROM sujets WHERE idSujet = :id_subject"); $get_status = $getSubject->execute(array( ':id_subject' => $id_subject )); // Si erreur de requête if( $get_status === false ) return false; /* [2] On recupere le resultat de la requete =========================================================*/ $subjectData = $getSubject->fetch(); // Si l'utilisateur n'existe pas, on retourne FALSE if( $subjectData === false ) return false; /* [3] Gestion du retour =========================================================*/ return Database::delNumeric( $subjectData, true ); } /* RETOURNE LES DONNEES DE TOUS LES SUJETS * * @return subjects Tableau contenant les donnees des sujets, retourne FALSE si erreur * */ public static function getAll(){ /* [1] On effectue la requete =========================================================*/ $getSubjects = Database::getPDO()->query("SELECT idSujet, pseudo, prenom, nom, id_facebook, telephone FROM sujets ORDER BY idSujet ASC"); /* [2] On recupere le resultat de la requete =========================================================*/ $subjectsData = $getSubjects->fetchAll(); // Si l'utilisateur n'existe pas, on retourne FALSE if( $subjectsData === false ) return false; /* [3] Gestion du retour =========================================================*/ return Database::delNumeric( $subjectsData ); } /* CREE UN SUJET * * @username Pseudo du sujet * @firstname Prénom du sujet * @lastname Nom du sujet * @id_facebook Id facebook du sujet (optionnel) * @number Numéro de téléphone du sujet (optionnel) * * @return id_subject Renvoie l'id du sujet cree ou FALSE si erreur * */ public static function create($username, $firstname, $lastname, $id_facebook, $number){ /* [0] Verification et formattage des INPUT =========================================================*/ $checkInput = Database::check('varchar(0,30)', $username); $checkInput = $checkInput && Database::check('varchar(0,30)', $firstname); $checkInput = $checkInput && Database::check('varchar(0,30)', $lastname); $checkInput = $checkInput && !!strlen($username.$firstname.$lastname); // Pseudo, prénom, ou nom, au moins un n'est pas vide $checkInput = $checkInput && ( Database::check('id', $id_facebook) || is_null($id_facebook) ); $checkInput = $checkInput && ( Database::check('number', $number) || is_null($number) ); // Si erreur en entree, on retourne FAUX if( !$checkInput ) return false; /* [1] On écrit la requête =========================================================*/ $request_create_string = 'INSERT INTO sujets(idSujet, pseudo, nom, prenom, id_facebook, telephone) '; $request_create_string .= 'VALUES ('; $request_create_string .= 'DEFAULT, '; // idPersone $request_create_string .= strlen($username) ? ':pseudo, ' : 'NULL, '; // pseudo $request_create_string .= strlen($lastname) ? ':nom, ' : 'NULL, '; // nom $request_create_string .= strlen($firstname) ? ':prenom, ' : 'NULL, '; // prenom $request_create_string .= !is_null($id_facebook) ? ':id_facebook, ' : 'NULL, '; // Id facebook $request_create_string .= !is_null($number) ? ':number, ' : 'NULL, '; // Numéro de tél // On retire la dernière virgule $request_create_string = preg_replace('/, ?$/', '', $request_create_string); $request_create_string .= ')'; // On crée la requête $request_create = Database::getPDO()->prepare($request_create_string); /* [2] On exécute la requête avec les valeurs =========================================================*/ /* (1) On ajoute les paramètres à ajouter */ $variables = array(); if( strlen($username) ) $variables[':pseudo'] = $username; if( strlen($lastname) ) $variables[':nom'] = $lastname; if( strlen($firstname) ) $variables[':prenom'] = $firstname; if( !is_null($id_facebook) ) $variables[':id_facebook'] = $id_facebook; if( !is_null($number) ) $variables[':number'] = $number; /* (2) On exécute la requête avec leurs variables utiles uniquement */ $status_created = $request_create->execute($variables); /* [3] Verification de la creation + recuperation id =========================================================*/ // Si erreur de création if( $status_created === false ) return false; // On recupere l'id du sujet $id_subject = Database::getPDO()->lastInsertId(); // Si erreur, on retourne FALSE if( $id_subject == null ) return false; /* [4] Gestion du retour =========================================================*/ return $id_subject; } /* SUPRESSION D'UN SUJET D'ID DONNE * * @id_subject UID du sujet en question * */ public static function remove($id_subject){ /* [0] Vérification des INPUT =========================================================*/ if( !Database::check('id', $id_subject) ) return false; /* [1] On effectue la suppression =========================================================*/ $delSubject = Database::getPDO()->prepare("DELETE FROM sujets WHERE idSujet = :id_subject"); return $delSubject->execute(array( ':id_subject' => $id_subject )); } /* CREER UNE RELATION ENTRE 2 SUJETS * * @A UID du premier sujet * @B UID du second sujet * @category Intitulé du type de relation * * @return id_relation Renvoie l'id de la relation crée, sinon FALSE si erreur * */ public static function link($A, $B, $category){ /* [0] Vérification des INPUT =========================================================*/ $checkInput = Database::check('id', $A); $checkInput = $checkInput && Database::check('id', $B); $checkInput = $checkInput && Database::check('varchar(0,40)', $category); // Si erreur de type de paramètre, on retourne FALSE if( !$checkInput ) return false; /* [1] On récupère ou crée la catégorie =========================================================*/ $category_id_req = new Repo('category/getOrCreate', array($category)); $category_id = $category_id_req->answer(); // Si erreur -> FALSE if( $category_id === false ) return false; /* [2] On crée la relation =========================================================*/ $relation_req = new Repo('relation/create', array($A, $B, $category_id)); $relation = $relation_req->answer(); // Si erreur de création -> FALSE if( $relation === false ) return false; // Si tout s'est bien passé, on retourne TRUE return true; } } ?>