summaryrefslogtreecommitdiff
path: root/Core/Functions/func_search.php
diff options
context:
space:
mode:
Diffstat (limited to 'Core/Functions/func_search.php')
-rw-r--r--Core/Functions/func_search.php81
1 files changed, 81 insertions, 0 deletions
diff --git a/Core/Functions/func_search.php b/Core/Functions/func_search.php
new file mode 100644
index 0000000..69740da
--- /dev/null
+++ b/Core/Functions/func_search.php
@@ -0,0 +1,81 @@
+<?php
+
+// ############################################################################
+// # #
+// # Description: Fonction pour rechercher les consultants #
+// # #
+// ############################################################################
+
+function search($request, $isResearch) {
+ // Instanciation des méthodes de recherches de la BDD.
+ $dbsearch = new DbSearch;
+ $dbmission = new DbMission;
+
+ // Si c'est une recherche.
+ if ($isResearch) {
+ switch ($isResearch) {
+ case 1:
+ $result = $dbsearch->get_pro_info_by_lastname($request);
+ break;
+ case 2:
+ $result = $dbsearch->get_all_pro_by_jobid($request);
+ break;
+ default:
+ break;
+ }
+
+ // Pour chaque utilisateur avec un nom qui "match".
+ for ($i = 0; $i < count($result); $i++) {
+ $result[$i]["jobs"] = $dbsearch->get_pro_job_by_proid($result[$i]["userId"]);
+ // récupération du nombre de mission effectué.
+ $numberMission = $dbmission->count_pro_missions_by_proid($result[$i]["userId"]);
+ $result[$i]["numberOfMissions"] = $numberMission[0][0];
+ // récupération des notes de l'utilisateur.
+ $allNotes = $dbsearch->get_pro_note_by_proid($result[$i]["userId"]);
+ // Pour chaque note on la "push" (ajoute) dans une liste.
+ $notes = array();
+ for ($j = 0; $j < count($allNotes); $j++) {
+ if ($allNotes[$j][0]) {
+ array_push($notes, $allNotes[$j][0]);
+ }
+ }
+
+ // On fait la moyenne des notes,
+ // et pour les étoiles on "coupe" tout ce qui est après la virgule en castant en "int".
+ if ($notes) {
+ $average = array_sum($notes) / count($notes);
+ $result[$i]["note"] = round($average, 2);
+ $result[$i]["star"] = (int)$average;
+ // Si il n'y a pas encore de note.
+ } else {
+ $result[$i]["note"] = 0;
+ $result[$i]["star"] = 0;
+ }
+ }
+ // Si c'est "plus d'info" et non une recherche.
+ } else {
+ $result = $dbsearch->get_user_info_by_userid($request);
+ for ($i = 0; $i < count($result); $i++) {
+ $result[$i]["jobs"] = $dbsearch->get_pro_job_by_proid($request);
+ }
+ }
+
+ // Redirection vers l'index avec le "payload" (contenu) en fonction du type de recherche.
+ if ($isResearch) {
+ $search = array(
+ "result" => $result,
+ "isResearch" => true
+ );
+ } else {
+ $search = array(
+ "result" => $result,
+ "isResearch" => false
+ );
+ }
+ $_SESSION["search"] = $search;
+
+ header("Location: /index.php#separator2");
+ die();
+}
+
+?> \ No newline at end of file