109 lines
3.0 KiB
PHP
109 lines
3.0 KiB
PHP
<?php
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
|
|
class Game_model extends CI_Model {
|
|
|
|
public function __construct() {
|
|
parent::__construct();
|
|
$this->load->database();
|
|
}
|
|
|
|
/**
|
|
* Récupère les jeux appartenant à une catégorie spécifique
|
|
*/
|
|
public function get_by_category($category_id) {
|
|
$this->db->select('game.*');
|
|
$this->db->from('game');
|
|
|
|
$this->db->join('game_category', 'game_category.gameId = game.gameId');
|
|
|
|
$this->db->where('game_category.categoryId', $category_id);
|
|
|
|
$query = $this->db->get();
|
|
return $query->result_array();
|
|
}
|
|
|
|
/**
|
|
* Récupère les jeux appartenant à un genre spécifique
|
|
*/
|
|
public function get_by_genre($genre_id) {
|
|
$this->db->select('game.*');
|
|
$this->db->from('game');
|
|
|
|
$this->db->join('game_genre', 'game_genre.gameId = game.gameId');
|
|
|
|
$this->db->where('game_genre.genreId', $genre_id);
|
|
|
|
$query = $this->db->get();
|
|
return $query->result_array();
|
|
}
|
|
|
|
/**
|
|
* Récupère les détails complets d'un jeu (avec développeur et poster)
|
|
*/
|
|
public function get_by_id($game_id) {
|
|
|
|
$this->db->select('game.*, developer.name as developer_name, poster.url as poster_url');
|
|
$this->db->from('game');
|
|
|
|
$this->db->join('developer', 'developer.developerId = game.developerId', 'left');
|
|
|
|
$this->db->join('poster', 'poster.posterId = game.posterId', 'left');
|
|
|
|
$this->db->where('game.gameId', $game_id);
|
|
|
|
$query = $this->db->get();
|
|
|
|
return $query->row_array();
|
|
}
|
|
|
|
public function ajouter_jeu($titre, $annee, $description, $prix) {
|
|
$donnees = array(
|
|
'name' => $titre,
|
|
'releaseYear' => $annee,
|
|
'shortDescription' => $description,
|
|
'price' => empty($prix) ? NULL : $prix
|
|
);
|
|
return $this->db->insert('game', $donnees);
|
|
}
|
|
|
|
public function supprimer_jeu($id) {
|
|
return $this->db->delete('game', array('id' => $id));
|
|
}
|
|
|
|
public function get_jeu($id) {
|
|
$leJeu = $this->db->get_where('game', array('id' => $id));
|
|
return $leJeu->row_array();
|
|
}
|
|
|
|
public function modifier_jeu($id, $titre, $annee, $description, $prix) {
|
|
$donnees = array(
|
|
'name' => $titre,
|
|
'releaseYear' => $annee,
|
|
'shortDescription' => $description,
|
|
'price' => empty($prix) ? NULL : $prix
|
|
);
|
|
|
|
$this->db->where('id', $id);
|
|
return $this->db->update('game', $donnees);
|
|
}
|
|
|
|
public function get_tous_les_jeux($critere_tri = 'id') {
|
|
$tris_autorises = array('id', 'name', 'releaseYear', 'price');
|
|
|
|
if (!in_array($critere_tri, $tris_autorises)) {
|
|
$critere_tri = 'id';
|
|
}
|
|
|
|
$this->db->order_by($critere_tri, 'ASC');
|
|
|
|
$query = $this->db->get('game');
|
|
|
|
return $query->result_array();
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|