diff --git a/manager/database.php b/manager/database.php index 505f725..5838e49 100755 --- a/manager/database.php +++ b/manager/database.php @@ -1482,29 +1482,21 @@ class DataBase{ *****************************************************************************************************/ - public static function searchForUsers($nom){ + public function searchForUsers($keyword){ - $retour = groupRepo::search($nom); - if (!$retour || $retour === array()) { - return false; - } - else { - //On classe les résultats en fonction de si c'est un étudiant ou bien un professeur - $etudiants = array(); - foreach ($retour as $num => $user) { - //On supprime tous les administrateurs des résultats - if($user['droits'] == 'admin'){ - unset($retour[$num]); - } - //On récupère les étudiants dans un tableau différent et on efface les entrées dans le tableau retour - elseif ($user['droits'] == 'student') { - $etudiants[] = $user; - unset($retour[$num]); - } - } - $retour[] = $etudiants; - return array_values($retour); + $results = groupRepo::search($keyword); + + // si aucun erreur, on retourne FAUX + if ( !$results ) return false; + + //On classe les résultats en fonction de si c'est un étudiant ou bien un professeur + foreach ($results as $num=>$user) { + // On supprime tous les non-étudiants + if( $user['droits'] != 'student') + unset($results[$num]); } + + return $results; } diff --git a/manager/groups.php b/manager/groups.php index 7bca98a..4e6ec1f 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -256,27 +256,20 @@ class groupsManager{ /***********************/ case 'search': //On vérifie qu'on a bien les mots clés - if (isset($request->keywords) && $request->keywords != '') { + if( isset($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; + foreach ($keys as $keyword){ + //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; - } + $answer->results = DataBase::getInstance()->searchForUsers($keyword); + + $answer->request = (is_bool($answer->results)) ? 'error' : 'success'; } - } - else { - $answer->request = 'no_keywords'; - } + }else + $answer->request = 'error'; break; diff --git a/manager/repo/group.php b/manager/repo/group.php index 08dbb63..bf9e722 100755 --- a/manager/repo/group.php +++ b/manager/repo/group.php @@ -527,20 +527,23 @@ class groupRepo{ * @return le tableau des résultats, ou false en cas d'erreur *==================================================================================================> */ - public static function search($mot){ + public static function search($keyword){ + //Vérification du paramètre: - if (! checkParam($mot, '')) { - return false; - } + if( !checkParam($keyword, '') ) 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; + $statement = DataBase::getPDO()->prepare("SELECT * + FROM utilisateur + WHERE nom LIKE :a + OR prenom LIKE :b"); + $statement->execute(array( + ':a' => '%'.$keyword.'%', + ':b' => '%'.$keyword.'%' + )); + + return DataBase::delNumeric( $statement->fetchAll() ); + } diff --git a/page/home.php b/page/home.php index d626665..cc9a5f8 100755 --- a/page/home.php +++ b/page/home.php @@ -203,7 +203,7 @@ if( permission('admin') ){ // si on est admin echo "
"; - var_dump($keywords); + var_dump($answerEtu->results); echo "
";