summaryrefslogtreecommitdiff
path: root/Database/meth_dbadmin.php
blob: 883063b18443cd9bc49fb629bc6a460c0b7c7e4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?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"
        $result = $this->exec_cmd($reqGetAll, array())->fetchAll(PDO::FETCH_ASSOC);
        return $result;
    }

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

    // 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;
        }
    }
}
?>