From 1b17e158d33e1087790f33cf6f9d5a711f760268 Mon Sep 17 00:00:00 2001 From: rookiered Date: Sat, 9 Jan 2016 16:31:04 +0100 Subject: [PATCH] =?UTF-8?q?Recherche=20=C3=A9tudiant=20fonctionnelle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API.php | 5 +---- manager/database.php | 2 +- manager/groups.php | 26 ++++++++++++++++++++++++++ manager/repo/group.php | 26 ++++++++++++++++++++++++++ manager/repo/user.php | 24 +----------------------- manager/user.php | 26 -------------------------- test.php | 4 ++-- 7 files changed, 57 insertions(+), 56 deletions(-) diff --git a/API.php b/API.php index c306ecf..c2b589b 100755 --- a/API.php +++ b/API.php @@ -106,10 +106,7 @@ require_once __ROOT__.'/manager/security.php'; // on envoie (affiche) l'objet en JSON - //echo json_encode($answer); - echo "
";
-			print_r($answer);
-			echo "
"; + echo json_encode($answer); } diff --git a/manager/database.php b/manager/database.php index b212f16..0fc60b3 100755 --- a/manager/database.php +++ b/manager/database.php @@ -1332,7 +1332,7 @@ class DataBase{ public static function searchForUsers($nom){ - $retour = userRepo::search($nom); + $retour = groupRepo::search($nom); if (!$retour || $retour === array()) { return false; } diff --git a/manager/groups.php b/manager/groups.php index aed315a..7bca98a 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -251,7 +251,33 @@ class groupsManager{ + /***********************/ + /* MOTEUR DE RECHERCHE */ + /***********************/ + case 'search': + //On vérifie qu'on a bien les mots clés + if (isset($request->keywords) && $request->keywords != '') { + //On explode les mots clés + $keys = explode(' ', $request->keywords); + //Pour chaque mot clé on lance une recherche dans la bdd + foreach ($keys as $mot) { + $retour = null; + //On cherche d'abord en fonction du nom... + $retour = DataBase::searchForUsers($mot); + //Si il y a un résultat de recherche alors on le stock dans résultat + if ($retour === false) { + $answer->results = null; + } + else { + $answer->results = $retour; + } + } + } + else { + $answer->request = 'no_keywords'; + } + break; /***********/ diff --git a/manager/repo/group.php b/manager/repo/group.php index f21375d..60cade9 100755 --- a/manager/repo/group.php +++ b/manager/repo/group.php @@ -518,4 +518,30 @@ class groupRepo{ } + + /** + * Fonction search : recherche dans la bae de données un utilisateur + * Pour se faire on recherche un mot clé contenu dans le nom ou le prénom de l'utilisateur + * + * @param $mot: le mot clé de la recherche associée + * @return le tableau des résultats, ou false en cas d'erreur + *==================================================================================================> + */ + public static function search($mot){ + //Vérification du paramètre: + if (! checkParam($mot, '')) { + return false; + } + //On recherche dans la table utilisateur dans les noms et prénoms qui contiendraient une ccurence de "mot" + $statement = DataBase::getPDO()->prepare("SELECT * FROM utilisateur". + " WHERE nom LIKE :nom OR :prenom OR nom = :mot OR prenom = :mot ;"); + $ret = $statement->execute(array(':nom' => '%'.$mot.'%', + ':prenom' => '%'.$mot.'%', + ':mot' => $mot)); + if($ret) + return $statement->fetchAll(); + return false; + } + + } \ No newline at end of file diff --git a/manager/repo/user.php b/manager/repo/user.php index cee0cc7..1e60797 100755 --- a/manager/repo/user.php +++ b/manager/repo/user.php @@ -502,28 +502,6 @@ class userRepo{ - /** - * Fonction search : recherche dans la bae de données un utilisateur - * Pour se faire on recherche un mot clé contenu dans le nom ou le prénom de l'utilisateur - * - * @param $mot: le mot clé de la recherche associée - * @return le tableau des résultats, ou false en cas d'erreur - *==================================================================================================> - */ - public static function search($mot){ - //Vérification du paramètre: - if (! checkParam($mot, '')) { - return false; - } - //On recherche dans la table utilisateur dans les noms et prénoms qui contiendraient une ccurence de "mot" - $statement = DataBase::getPDO()->prepare("SELECT * FROM utilisateur". - " WHERE nom LIKE :nom OR :prenom OR nom = :mot OR prenom = :mot ;"); - $ret = $statement->execute(array(':nom' => '%'.$mot.'%', - ':prenom' => '%'.$mot.'%', - ':mot' => $mot)); - if($ret) - return $statement->fetchAll(); - return false; - } + } \ No newline at end of file diff --git a/manager/user.php b/manager/user.php index b7a1d4d..c17ec9d 100755 --- a/manager/user.php +++ b/manager/user.php @@ -184,33 +184,7 @@ class userManager{ break; - /***********************/ - /* MOTEUR DE RECHERCHE */ - /***********************/ - case 'search': - //On vérifie qu'on a bien les mots clés - if (isset($request->keywords) && $request->keywords != '') { - //On explode les mots clés - $keys = explode(' ', $request->keywords); - //Pour chaque mot clé on lance une recherche dans la bdd - foreach ($keys as $mot) { - $retour = null; - //On cherche d'abord en fonction du nom... - $retour = DataBase::searchForUsers($mot); - //Si il y a un résultat de recherche alors on le stock dans résultat - if ($retour === false) { - $answer->results = null; - } - else { - $answer->results = $retour; - } - } - } - else { - $answer->request = 'no_keywords'; - } - break; /***********/ /* DEFAULT */ diff --git a/test.php b/test.php index 5a1f026..565410c 100755 --- a/test.php +++ b/test.php @@ -428,9 +428,9 @@ require_once __ROOT__.'/manager/security.php'; $req = new stdClass(); $ans = new stdClass(); -$req->level_0 = 'user'; +$req->level_0 = 'groups'; $req->level_1 = 'search'; -$req->keywords = 'nometu Etud11'; +$req->keywords = 'nometu Etud10'; $_POST['json'] = json_encode($req); include 'API.php';