diff --git a/JOURNAL.md b/JOURNAL.md
index 1eeabdb..1a27be9 100644
--- a/JOURNAL.md
+++ b/JOURNAL.md
@@ -19,19 +19,74 @@
**Usage de l'IA (Séance 1) :**
**Prompts utilisés :** Demandes d'aide sur la configuration initiale de Git, le fonctionnement des branches, et la syntaxe pour bien rédiger les fichiers `.md` (README et JOURNAL).
**Extraits de réponse jugés utiles :** Les explications claires sur le workflow Git (pourquoi on ne travaille pas sur le main, l'utilité de git checkout -b`) et le rôle d'une
-Pull Request. Les symboles # et ## : Les Titres
-Le nombre de # détermine l'importance et la taille du titre. C’est l’équivalent des balises
et
en HTML.
+Pull Request.Les symboles '#' et '##' : Les Titres
+Le nombre de '#' détermine l'importance et la taille du titre. C’est l’équivalent des balises '
' et '
' en HTML.
"#" Titre Principal : Crée un titre de niveau 1 (très grand, utilisé pour le nom du projet).
"##" Sous-Titre : Crée un titre de niveau 2 (taille moyenne, parfait pour séparer tes sections comme "Membres du binôme" ou "Séance 1").
"###" Titre de niveau 3 : Pour des sous-sections encore plus petites.
-Règle d'or : Il faut toujours mettre un espace entre les # et le premier mot (écris ## Séance 1 et non ##Séance 1).
-2. Le symbole * : Les listes et le style
+Règle d'or : Il faut toujours mettre un espace entre les '#' et le premier mot (écris '##' Séance 1 et non '##Séance 1').
+2. Le symbole '*' : Les listes et le style
L'astérisque change de rôle selon la façon dont tu l'utilises :
Pour faire des listes à puces
-Si tu places un * au tout début d'une ligne, suivi d'un espace, cela génère une liste propre.
+Si tu places un '*' au tout début d'une ligne, suivi d'un espace, cela génère une liste propre.
"*" Ibrahim devient une puce avec "Ibrahim".
"*" Tajeddine devient une puce avec "Tajeddine".
Pour modifier le style du texte
Si tu colles les astérisques autour d'un mot ou d'une phrase (sans espace cette fois) :
-*texte* (un seul de chaque côté) : Met le mot en italique.
+'*texte*' (un seul de chaque côté) : Met le mot en italique.
texte (deux de chaque côté) : Met le mot en gras (très pratique pour faire ressortir les mots-clés).
+
+## Séance 2
+**Objectif de la séance :** Avancer sur le projet.
+
+**Travail réalisé :**
+* Aucun, Tajeddine et moi étions absents.
+
+**Difficultés rencontrées :** Absence du binôme.
+
+**Décisions prises :** Rattraper le travail pendant la séance 3.
+
+**Travail de chacun :** Rien pour cette séance.
+
+**Points à reprendre à la séance suivante :** Rattraper le retard et commencer à coder.
+
+**Usage de l'IA (Séance 2) :** Aucun.
+
+
+## Séance 3
+**Objectif de la séance :** Rattraper la séance 2, définir la répartition des rôles, réparer les problèmes de Git et avancer sur la gestion des jeux.
+
+**Répartition des tâches décidée :**
+* **Tajeddine :** S'occupe de l'interface utilisateur (Accueil, listes des jeux par catégories, fiche détaillée d'un jeu, et barre de recherche).
+* **Ibrahim :** S'occupe de l'administration des données (Formulaires d'ajout et de modification, suppression des jeux, et filtres de tri).
+
+**Travail réalisé :**
+* Création de la vue `formulaire_ajout.php` ( pour l'ajout et la modification).
+* Création du contrôleur `Jeux.php` et mise à jour de `Game_model.php` pour gérer l'insertion, la mise à jour et la suppression.
+* Configuration de `base_url` dans `config.php` et ajout de `url` et `form` dans `autoload.php`.
+
+**Difficultés rencontrées :** * Conflits sur Git en voulant fusionner les branches.
+* La base de données bloquait l'ajout en silence car on avait oublié le champ `description` qui est obligatoire (`NOT NULL` dans la table).
+
+**Travail de chacun :** * Ibrahim : Réparation du dépôt Git, configuration du projet, et code complet des fonctionnalités "Créer", "Modifier" et "Supprimer" un jeu.
+
+**Points à reprendre à la séance suivante (Séance 4) :** * Ibrahim : Faire la Mission 4 (Ajouter les filtres de tri par titre/année sur les listes).
+* Tajeddine : Avancer sur l'affichage visuel des listes de jeux pour qu'on puisse y intégrer les boutons de modification/suppression et les filtres.
+
+**Usage de l'IA (Séance 3) :**
+**Prompts utilisés :** Demande de commandes pour nettoyer Git après un conflit, aide pour comprendre une erreur de "fonction non définie", et aide pour trouver l'erreur d'insertion MariaDB.
+**Extraits de réponse jugés utiles :**
+* L'armoire Jeux est parfaitement déclarée ! Il faut maintenant y ajouter notre tiroir, c'est-à-dire la méthode ajouter(). À l'intérieur de cette méthode, nous avons besoin de deux instructions que tu as déjà utilisées tout à l'heure :
+L'instruction pour charger l'outil natif des URL (le helper).
+L'instruction pour charger et afficher la vue qui s'appellera formulaire_ajout_vue.
+Comment vas-tu écrire cette fonction public function ajouter() avec ces deux lignes à l'intérieur de ta classe ?
+
+*Ton début de code pour la classe Jeux est parfait. Dans CodeIgniter, la commande $this->load fonctionne comme un couteau suisse. Pour l'utiliser, on lui ajoute une flèche -> suivie de l'action que l'on veut faire.
+Dans notre fonction ajouter(), nous avons besoin de faire deux actions :
+Charger un outil (helper) pour gérer les liens web. L'outil s'appelle 'url' et la commande à utiliser est helper().
+Charger l'interface visuelle (vue) qui contiendra le formulaire. Nous allons l'appeler 'formulaire_ajout_vue' et la commande est view().
+En utilisant la syntaxe $this->load->..., comment écrirais-tu ces deux lignes complètes à l'intérieur de ta fonction ajouter() ?
+
+
+
+
diff --git a/README.md b/README.md
index 409b542..fc67103 100644
--- a/README.md
+++ b/README.md
@@ -9,5 +9,5 @@ Ce projet a pour but de créer une application web en PHP avec CodeIgniter 3 pou
## Accès à l'application
L'application est déployée et consultable à l'adresse suivante :
-https://dwarves.iut-fbleau.fr/~doucoure/sae_r301_gr12/
+https://dwarves.iut-fbleau.fr/~doucoure/sae_r301_g12/codeigniter-develop/index.php/
SAE S2.02
\ No newline at end of file
diff --git a/codeigniter-develop/application/config/autoload.php b/codeigniter-develop/application/config/autoload.php
index 7cdc901..6f31b14 100644
--- a/codeigniter-develop/application/config/autoload.php
+++ b/codeigniter-develop/application/config/autoload.php
@@ -89,7 +89,7 @@ $autoload['drivers'] = array();
|
| $autoload['helper'] = array('url', 'file');
*/
-$autoload['helper'] = array();
+$autoload['helper'] = array('url','form');
/*
| -------------------------------------------------------------------
diff --git a/codeigniter-develop/application/config/config.php b/codeigniter-develop/application/config/config.php
index 11d76cf..bea9f18 100644
--- a/codeigniter-develop/application/config/config.php
+++ b/codeigniter-develop/application/config/config.php
@@ -23,7 +23,7 @@ defined('BASEPATH') OR exit('No direct script access allowed');
| a PHP script and you can easily do that on your own.
|
*/
-$config['base_url'] = 'https://dwarves.iut-fbleau.fr/~doucoure/sae_r301_gr12/codeigniter-develop/';
+$config['base_url'] = 'https://dwarves.iut-fbleau.fr/~doucoure/sae_r301_g12/codeigniter-develop/';
/*
|--------------------------------------------------------------------------
diff --git a/codeigniter-develop/application/controllers/Jeux.php b/codeigniter-develop/application/controllers/Jeux.php
new file mode 100644
index 0000000..bbd2b1f
--- /dev/null
+++ b/codeigniter-develop/application/controllers/Jeux.php
@@ -0,0 +1,75 @@
+load->helper('url');
+ $this->load->helper('form');
+ $this->load->view("formulaire_ajout");
+ }
+
+ public function sauvegarder() {
+ $this->load->helper('url');
+ $titre = $this->input->post('titre');
+ $annee = $this->input->post('annee');
+ $description = $this->input->post('description');
+ $prix = $this->input->post('prix');
+
+ $this->load->model('Game_model');
+
+ $insertion_reussie = $this->Game_model->ajouter_jeu($titre, $annee, $description, $prix);
+ if ($insertion_reussie) {
+ echo "
Le jeu " . $titre . " a bien été ajouté à la base de données.
";
+ print_r($this->db->error());
+ }
+ }
+
+ public function supprimer($id) {
+ $this->load->model('Game_model');
+
+ $supr = $this->Game_model->supprimer_jeu($id);
+
+ if ($supr) {
+ echo "
Le jeu numéro " . $id . " a bien été supprimé de la base de données !
";
+ } else {
+ echo "
impossible de supprimer le jeu.
";
+ }
+ }
+
+ // 1. Affiche le formulaire pré-rempli
+ public function modifier($id) {
+ $this->load->model('Game_model');
+
+ // On récupère les infos du jeu
+ $donnees['jeu'] = $this->Game_model->get_jeu($id);
+
+ // Si le jeu n'existe pas, on arrête tout
+ if (empty($donnees['jeu'])) {
+ show_404(); // Affiche la page d'erreur 404 de CodeIgniter
+ }
+
+ // On charge la vue en lui passant les infos du jeu
+ $this->load->view('formulaire_ajout', $donnees);
+ }
+
+ public function mettre_a_jour($id) {
+ $titre = $this->input->post('titre');
+ $annee = $this->input->post('annee');
+ $description = $this->input->post('description');
+ $prix = $this->input->post('prix');
+
+ $this->load->model('Game_model');
+ $maj = $this->Game_model->modifier_jeu($id, $titre, $annee, $description, $prix);
+
+ if ($maj) {
+ echo "
Le jeu " . html_escape($titre) . " a bien été modifié.