From 7a6f07e01953c79ad0cea062c36a3eecdea2a060 Mon Sep 17 00:00:00 2001 From: Tajeddine Date: Wed, 10 Jun 2026 16:31:05 +0200 Subject: [PATCH] Finalisation des vues de consultation et integration des liens entre jeux categories et genres --- .../application/controllers/Game.php | 8 +- .../application/controllers/Genre.php | 7 +- .../application/controllers/Home.php | 16 ++++ .../application/models/Category_model.php | 15 ++++ .../application/models/Game_model.php | 27 +++++-- .../application/models/Genre_model.php | 17 ++++- .../application/views/game_detail_view.php | 73 +++++++++++++------ .../application/views/games_list_view.php | 37 +++++----- .../application/views/home_view.php | 20 +++-- .../application/views/search_results_view.php | 30 ++++++++ 10 files changed, 185 insertions(+), 65 deletions(-) create mode 100644 codeigniter-develop/application/views/search_results_view.php diff --git a/codeigniter-develop/application/controllers/Game.php b/codeigniter-develop/application/controllers/Game.php index 2341cb1..6ba6e3f 100644 --- a/codeigniter-develop/application/controllers/Game.php +++ b/codeigniter-develop/application/controllers/Game.php @@ -8,17 +8,19 @@ class Game extends CI_Controller { redirect('home'); } - // 1. Charger le modèle des jeux $this->load->model('Game_model'); + $this->load->model('Category_model'); + $this->load->model('Genre_model'); - // 2. Récupérer les données du jeu cible $data['game'] = $this->Game_model->get_by_id($id); if (empty($data['game'])) { show_404(); } - // 3. Charger la vue de détail en lui poussant les données + $data['categories'] = $this->Category_model->get_by_game($id); + $data['genres'] = $this->Genre_model->get_by_game($id); + $this->load->view('game_detail_view', $data); } } \ No newline at end of file diff --git a/codeigniter-develop/application/controllers/Genre.php b/codeigniter-develop/application/controllers/Genre.php index ff03ae5..fdf1703 100644 --- a/codeigniter-develop/application/controllers/Genre.php +++ b/codeigniter-develop/application/controllers/Genre.php @@ -8,10 +8,9 @@ class Genre extends CI_Controller { redirect('home'); } - // 1. Charger les modèles nécessaires $this->load->model('Game_model'); + $this->load->model('Genre_model'); - // 2. Récupérer les informations du genre pour afficher son nom $this->db->where('genreId', $id); $data['genre'] = $this->db->get('genre')->row_array(); @@ -19,10 +18,8 @@ class Genre extends CI_Controller { show_404(); } - // 3. Récupérer tous les jeux liés à ce genre $data['games'] = $this->Game_model->get_by_genre($id); - // 4. Envoyer les données à la vue - $this->load->view('genre_games_list_view', $data); + $this->load->view('games_list_view', $data); } } \ No newline at end of file diff --git a/codeigniter-develop/application/controllers/Home.php b/codeigniter-develop/application/controllers/Home.php index 3bb31fe..fc4b9ad 100644 --- a/codeigniter-develop/application/controllers/Home.php +++ b/codeigniter-develop/application/controllers/Home.php @@ -15,4 +15,20 @@ class Home extends CI_Controller { // 3. Charger la vue en lui passant les données $this->load->view('home_view', $data); } + + public function search() { + $keyword = $this->input->get('keyword', TRUE); + + + if (empty($keyword)) { + redirect('home'); + } + + $this->load->model('Game_model'); + $data['games'] = $this->Game_model->search_by_title($keyword); + $data['search_keyword'] = $keyword; + + $this->load->view('search_results_view', $data); +} + } \ No newline at end of file diff --git a/codeigniter-develop/application/models/Category_model.php b/codeigniter-develop/application/models/Category_model.php index 8af2c1f..caaf08d 100644 --- a/codeigniter-develop/application/models/Category_model.php +++ b/codeigniter-develop/application/models/Category_model.php @@ -16,4 +16,19 @@ class Category_model extends CI_Model { return $query->result_array(); } + + + public function get_by_game($game_id) { + $this->db->select('category.*'); + $this->db->from('category'); + + $this->db->join('game_category', 'game_category.categoryId = category.categoryId'); + + $this->db->where('game_category.gameId', $game_id); + + $query = $this->db->get(); + + return $query->result_array(); + } + } \ No newline at end of file diff --git a/codeigniter-develop/application/models/Game_model.php b/codeigniter-develop/application/models/Game_model.php index 41b626b..f66a17e 100644 --- a/codeigniter-develop/application/models/Game_model.php +++ b/codeigniter-develop/application/models/Game_model.php @@ -1,12 +1,17 @@ load->database(); + public function search_by_title($keyword) { + + $this->db->like('name', $keyword); + $query = $this->db->get('game'); + + return $query->result(); } +} /** * Récupère les jeux appartenant à une catégorie spécifique @@ -68,11 +73,11 @@ class Game_model extends CI_Model { } public function supprimer_jeu($id) { - return $this->db->delete('game', array('id' => $id)); + return $this->db->delete('game', array('gameId' => $id)); } public function get_jeu($id) { - $leJeu = $this->db->get_where('game', array('id' => $id)); + $leJeu = $this->db->get_where('game', array('gameId' => $id)); return $leJeu->row_array(); } @@ -84,10 +89,20 @@ class Game_model extends CI_Model { 'price' => empty($prix) ? NULL : $prix ); - $this->db->where('id', $id); + $this->db->where('gameId', $id); return $this->db->update('game', $donnees); } + + public function search_by_title($keyword) { + $this->db->select('*'); + $this->db->from('game'); + + $this->db->like('title', $keyword); + + $query = $this->db->get(); + return $query->result_array(); +} } diff --git a/codeigniter-develop/application/models/Genre_model.php b/codeigniter-develop/application/models/Genre_model.php index 5d206ad..db1649b 100644 --- a/codeigniter-develop/application/models/Genre_model.php +++ b/codeigniter-develop/application/models/Genre_model.php @@ -5,14 +5,23 @@ class Genre_model extends CI_Model { public function __construct() { parent::__construct(); - $this->load->database(); + $this->load->database(); } - /** - * Récupère tous les genres de la base de données - */ public function get_all() { $query = $this->db->get('genre'); return $query->result_array(); } + + public function get_by_game($game_id) { + $this->db->select('genre.*'); + $this->db->from('genre'); + + $this->db->join('game_genre', 'game_genre.genreId = genre.genreId'); + + $this->db->where('game_genre.gameId', $game_id); + + $query = $this->db->get(); + return $query->result_array(); + } } \ No newline at end of file diff --git a/codeigniter-develop/application/views/game_detail_view.php b/codeigniter-develop/application/views/game_detail_view.php index ddab76c..2244f0f 100644 --- a/codeigniter-develop/application/views/game_detail_view.php +++ b/codeigniter-develop/application/views/game_detail_view.php @@ -2,38 +2,63 @@ - <?php echo html_escape($game['title']); ?> - Détails + Détails du jeu - <?= html_escape($game['name']) ?> + + ⬅ Retour à l'accueil -

← Retour à l'accueil

- -
- -
+
+
- Jaquette de <?php echo html_escape($game['title']); ?> + Poster de <?= html_escape($game['name']) ?> -
- Aucune image
disponible
+
+ Aucun poster disponible
-
+ -
-

-
    -
  • Année de sortie :
  • -
  • Développeur : - -
  • -
- -
-

Espace administration (Éditer / Supprimer)

-
- -
+
+

()

+ +

Développeur :

+ +

Prix :

+ +

Description :

+

+ +

Catégories associées :

+

+ + + + + + + + Aucune catégorie pour ce jeu. + +

+

Genres associés :

+

+ + + + + + + + Aucun genre pour ce jeu. + +

+ +
\ No newline at end of file diff --git a/codeigniter-develop/application/views/games_list_view.php b/codeigniter-develop/application/views/games_list_view.php index 901bdbe..acfd645 100644 --- a/codeigniter-develop/application/views/games_list_view.php +++ b/codeigniter-develop/application/views/games_list_view.php @@ -2,28 +2,31 @@ - Jeux de la catégorie <?php echo html_escape($category['name']); ?> + Liste des jeux + Retour à l'accueil -

← Retour à l'accueil

- -

Jeux dans la catégorie : ""

- - -

Aucun jeu trouvé dans cette catégorie pour le moment.

+ +

Jeux de la catégorie :

+ +

Jeux du genre :

- +

Liste des jeux

+ \ No newline at end of file diff --git a/codeigniter-develop/application/views/home_view.php b/codeigniter-develop/application/views/home_view.php index bd36d7a..6f2e119 100644 --- a/codeigniter-develop/application/views/home_view.php +++ b/codeigniter-develop/application/views/home_view.php @@ -9,14 +9,22 @@

Bienvenue sur l'application Jeux Vidéo

+
+

Rechercher un jeu vidéo

+
+ + +
+
+

Nos Catégories

@@ -27,12 +35,12 @@ + +
diff --git a/codeigniter-develop/application/views/search_results_view.php b/codeigniter-develop/application/views/search_results_view.php new file mode 100644 index 0000000..bdc7bb2 --- /dev/null +++ b/codeigniter-develop/application/views/search_results_view.php @@ -0,0 +1,30 @@ + + + + + Résultats de recherche pour "<?php echo html_escape($search_keyword); ?>" + + + +

← Retour à l'accueil

+ +

Résultats pour : ""

+ + +

Aucun jeu vidéo ne correspond à votre recherche.

+ +

jeu(x) trouvé(s) :

+ + + + + \ No newline at end of file -- 2.54.0