summaryrefslogtreecommitdiff
path: root/Database/meth_dbadmin.php
diff options
context:
space:
mode:
Diffstat (limited to 'Database/meth_dbadmin.php')
-rw-r--r--Database/meth_dbadmin.php108
1 files changed, 108 insertions, 0 deletions
diff --git a/Database/meth_dbadmin.php b/Database/meth_dbadmin.php
new file mode 100644
index 0000000..32d6077
--- /dev/null
+++ b/Database/meth_dbadmin.php
@@ -0,0 +1,108 @@
+<?php
+// ****************************************************************************
+// Description: Ensemble de méthodes pour étendre dbmain
+// afin de gérer l'administration du site
+// ****************************************************************************
+
+// Import de dbmain
+require_once(dirname( __FILE__ )."/dbmain.php");
+// Extension de cette classe avec dbmain
+class DbAdmin extends DbMain {
+
+ // Récupérer toutes les infos de la table userAccount
+ final public function get_all_users_account() {
+ $reqGetAll = "SELECT * FROM ".$this->tableUserAccount;
+ // https://www.php.net/manual/fr/pdostatement.fetch.php
+ // "PDO::FETCH_ASSOC: retourne un tableau indexé
+ // par le nom de la colonne comme retourné dans le jeu de résultats"
+ $data = $this->exec_cmd($reqGetAll, array())->fetchAll(PDO::FETCH_ASSOC);
+ return $data;
+ }
+
+ // https://stackoverflow.com/questions/1361340/how-can-i-do-insert-if-not-exists-in-mysql
+ // Suppresion d'un utilisateur
+ final public function user_del($userId) {
+ // Préparation de la requète pour voir si l'utilisateur existe
+ // https://stackoverflow.com/questions/1676551/best-way-to-test-if-a-row-exists-in-a-mysql-table
+ $reqCheckExistId = "SELECT EXISTS(SELECT 1 FROM ".$this->tableUserAccount." WHERE userId = ? LIMIT 1)";
+ // Exécution de la requète, fetchall pour avoir le résultat
+ // https://www.php.net/manual/fr/pdostatement.fetch.php
+ // struct par défaut req et index (fetch_both) = arr([0] => arr("req" => BOOL, [0] => BOOL))
+ // PDO::FETCH_NUM : retourne un tableau indexé par le numéro de la colonne comme elle
+ // est retourné dans votre jeu de résultat, commençant à 0
+ $reqResult = $this->exec_cmd($reqCheckExistId, array($userId))->fetchAll(PDO::FETCH_NUM);
+ // Si il existe
+ if ($reqResult[0][0]) {
+ // Préparation de la requète pour suppression
+ $reqDelUser = "DELETE FROM ".$this->tableUserAccount." WHERE userId = ?";
+ // Exécution de la requète
+ $this->exec_cmd($reqDelUser, array($userId));
+ // Retourne 1 pour réussite
+ return 1;
+ } else {
+ // Retourne 0 pour échec
+ return 0;
+ }
+ }
+
+ // Récupérer toutes les infos de la table jobCategory
+ final public function get_all_job_category() {
+ $reqGetAll = "SELECT * FROM ".$this->tableJobCategory;
+ $data = $this->exec_cmd($reqGetAll, array())->fetchAll(PDO::FETCH_ASSOC);
+ return $data;
+ }
+
+ // Ajout d'une categorie
+ final public function job_category_register($jobCategoryNameEn, $jobCategoryNameFr) {
+ // Préparation et execution de la requète pour voir si la categorie existe en anglais
+ $reqCheckjobCategoryNameEn = "SELECT EXISTS(SELECT 1 FROM ".$this->tableJobCategory." WHERE jobCategoryNameEn = ? LIMIT 1)";
+ $reqResultEn = $this->exec_cmd($reqCheckjobCategoryNameEn, array($jobCategoryNameEn))->fetchAll(PDO::FETCH_NUM);
+ // Si il n'existe pas en anglais
+ if (!$reqResultEn[0][0]) {
+ // Préparation et execution de la requète pour voir si la categorie existe en Français
+ $reqCheckjobCategoryNameFr = "SELECT EXISTS(SELECT 1 FROM ".$this->tableJobCategory." WHERE jobCategoryNameFr = ? LIMIT 1)";
+ $reqResultFr = $this->exec_cmd($reqCheckjobCategoryNameFr, array($jobCategoryNameFr))->fetchAll(PDO::FETCH_NUM);
+ // Si il n'existe pas en Français non plus
+ if (!$reqResultFr[0][0]) {
+ // Préparation de la requète pour l'ajout
+ $reqjobCategoryNameAdd = "INSERT INTO ".$this->tableJobCategory."
+ (jobCategoryNameEn, jobCategoryNameFr)
+ VALUES
+ (? ,?)";
+ // Exécution de la requète
+ $this->exec_cmd($reqjobCategoryNameAdd, array($jobCategoryNameEn, $jobCategoryNameFr));
+ // Retourne 1 pour réussite
+ return 1;
+ } else {
+ // Retourne 0 pour échec
+ return 0;
+ }
+ } else {
+ // Retourne 0 pour échec
+ return 0;
+ }
+ }
+
+ // Suppresion d'un utilisateur
+ final public function job_category_del($jobCategoryId) {
+ // Préparation de la requète pour voir si l'utilisateur existe
+ $reqCheckExistId = "SELECT EXISTS(SELECT 1 FROM ".$this->tableJobCategory." WHERE jobCategoryId = ? LIMIT 1)";
+ // Exécution de la requète, fetchall pour avoir le résultat
+ // struct par défaut req et index (fetch_both) = arr([0] => arr("req" => BOOL, [0] => BOOL))
+ // fetch_num pour casser l'index "req" en chiffre, dict -> list
+ $reqResult = $this->exec_cmd($reqCheckExistId, array($jobCategoryId))->fetchAll(PDO::FETCH_NUM);
+ // Si il existe
+ if ($reqResult[0][0]) {
+ // Préparation de la requète pour suppression
+ $reqDelJobCategory = "DELETE FROM ".$this->tableJobCategory." WHERE jobCategoryId = ?";
+ // Exécution de la requète
+ $this->exec_cmd($reqDelJobCategory, array($jobCategoryId));
+ // Retourne 1 pour réussite
+ return 1;
+ } else {
+ // Retourne 0 pour échec
+ return 0;
+ }
+ }
+}
+?> \ No newline at end of file