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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
| <?php
namespace Model;
use Model\Database;
require_once '../Autoload.php';//Autoloading
\Autoload::register();//appel de la fonction register
//Class pour le CRUD sur les tâches
class Crud {
protected $db;
//Constructeur
public function __construct()
{
$this->db = new Database();
}
//Fonction qui insert une tâche dans la DB
public function insert($id, $title, $description, $importance, $due_date, $start_date,
$parent, $status, $category, $prerequisite, $end_date, $estimated_time, $display_order) {
$sql = "INSERT INTO tasks (id_task, title, description, importance, due_date, start_date,
parent, status, category, prerequisite, created_at, updated_at, end_date, estimated_time, display_order)
VALUES (:id_task, :title, :description, :importance, :due_date, :start_date, :parent, :status, :category,
:prerequisite, now(), now(), :end_date, :estimated_time, :display_order)";
//now() permet de mettre la date du jour directement en SQL.
try {
$stmt = $this->db->db_connexion()->prepare($sql);
$stmt->execute(array(':id_task' => $id, ':title' => $title, ':description' => $description,
':importance' => $importance, ':due_date' => $due_date, ':start_date' => $start_date,
':parent' => $parent, ':status' => $status, ':category' => $category,
':prerequisite' => $prerequisite, ':end_date' => $end_date, ':estimated_time' => $estimated_time,
':display_order' => $display_order));
//return $this->$db->db_connexion()->lastInsertId();//remplace un return null, renvoi le dernier id inséré, pour des tests éventuel
$stmt = null;
} catch (Exception $e) {
//s'il y a un problème PHP ou SQL, tout s'affichera ici
print "Erreur d'insertion! " . $e->getMessage() . "<br/>";
}
}
//Fonction qui va lire toutes les tâches de la DB
public function readTasks() {
$data = array();
$sql = "SELECT * FROM tasks";
try {
$stmt = $this->db->db_connexion()->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
foreach ($result as $row) {
$data[] = $row;
}
return $data;
$stmt = null;
} catch (Exception $e) {
print "Erreur de lecture! " . $e->getMessage() . "<br/>";
}
}
//Fonction qui va lire une tâche dans la DB sur base de son id.
public function getTaskById($id) {
$sql = "SELECT * FROM tasks WHERE id_task = :id_task;";
try {
$stmt = $this->db->db_connexion()->prepare($sql);
$stmt->execute(array(':id_task' => $id));
$result = $stmt->fetch(\PDO::FETCH_ASSOC); //renvoi un tableau d'attributs
return $result;
//$stmt = null;
} catch (Exception $e) {
print "Erreur de lecture! " . $e->getMessage() . "<br/>";
}
}
//Fonction qui va mettre à jour une tâche dans la DB sur base de son id.
public function updateTask($id, $title, $description, $importance, $due_date, $start_date,
$parent, $status, $category, $prerequisite, $created_at, $updated_at, $end_date, $estimated_time, $display_order) {
$sql = "UPDATE tasks SET title = :title, description = :description, importance = :importance, due_date = :due_date, "
. "start_date = :start_date, parent = :parent, status = :status, category = :category, prerequisite = :prerequisite,"
. " created_at = :created_at, updated_at = :updated_at, end_date = :end_date, estimated_time = :estimated_time, "
. " display_order = :display_order WHERE id_task = :id_task";
try {
$stmt = $this->db->db_connexion()->prepare($sql);
$stmt->execute(array(':title' => $title, ':description' => $description, ':importance' => $importance, ':due_date' => $due_date, ':start_date' => $start_date,
':parent' => $parent, ':status' => $status, ':category' => $category, ':prerequisite' => $prerequisite, ':created_at' => $created_at, ':updated_at' => $updated_at,
':end_date' => $end_date, ':estimated_time' => $estimated_time, ':display_order' => $display_order, ':id_task' => $id));
//return true;
//$count = $stmt->rowCount;//remplace un return true, retourne le nombre de lignes affectées par la dernière requête DELETE, INSERT ou UPDATE exécutée par l'objet PDOStatement correspondant.
//echo $count . 'modif effectuée';
$stmt = null;
} catch (Exception $e) {
//s'il y a un problème PHP ou SQL, tout s'affichera ici
print "Erreur d'update! " . $e->getMessage() . "<br/>";
}
}
//Fonction qui efface une tâche sur base de son ID
public function deleteTask($id) {
$sql = "DELETE FROM tasks WHERE id_task = :id_task";
try {
$stmt = $this->db->db_connexion()->prepare($sql);
$stmt->execute([':id_task' => $id]);
return true;
//$count = $stmt->rowCount;//remplace un return true, retourne le nombre de lignes affectées par la dernière requête DELETE, INSERT ou UPDATE exécutée par l'objet PDOStatement correspondant.
$stmt = null;
} catch (Exception $e) {
print "Erreur de delete! " . $e->getMessage() . "<br/>";
}
}
//Fonction qui renvoi le nombre de tâche dans la DB
public function totalTasks() {
$sql = "SELECT * FROM tasks";
$stmt = $this->db->db_connexion()->prepare($sql);
$stmt->execute();
$totalTask = $stmt->rowCount();
return $totalTask;
$stmt = null;
}
}
//$object = new Database();//connexion à la DB
//print_r($object->read());//test fonction read
//echo $object->totalTasks();//test fonction totalTasks |
Partager