Recherche étudiant fonctionnelle

This commit is contained in:
rookiered 2016-01-09 16:31:04 +01:00
parent c0d17b2c73
commit 1b17e158d3
7 changed files with 57 additions and 56 deletions

View File

@ -106,10 +106,7 @@ require_once __ROOT__.'/manager/security.php';
// on envoie (affiche) l'objet en JSON
//echo json_encode($answer);
echo "<pre>";
print_r($answer);
echo "</pre>";
echo json_encode($answer);
}

View File

@ -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;
}

View File

@ -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;
/***********/

View File

@ -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, '<string>')) {
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;
}
}

View File

@ -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, '<string>')) {
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;
}
}

View File

@ -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 */

View File

@ -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';