82 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			82 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Model_artist extends CI_Model {
							 | 
						||
| 
								 | 
							
								    public function __construct(){
							 | 
						||
| 
								 | 
							
								        $this->load->database();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function getArtists($genre = '', $order = 'asc', $query = '', $limit = 10, $start = 0) {
							 | 
						||
| 
								 | 
							
								        $this->db->select('artist.name as artistName, artist.id as artistId');
							 | 
						||
| 
								 | 
							
								        $this->db->from('artist');
							 | 
						||
| 
								 | 
							
								        $this->db->join('album', 'album.artistid = artist.id');
							 | 
						||
| 
								 | 
							
								        $this->db->join('genre', 'genre.id = album.genreid');
							 | 
						||
| 
								 | 
							
								        $this->db->distinct();
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								        if (!empty($genre)) {
							 | 
						||
| 
								 | 
							
								            $this->db->where('genre.name', $genre);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								        if ($order == 'asc' || $order == 'desc') {
							 | 
						||
| 
								 | 
							
								            $this->db->order_by('artist.name', $order);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								        if (!empty($query)) {
							 | 
						||
| 
								 | 
							
								            $this->db->like('artist.name', $query);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								        $this->db->limit($limit, $start);
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								        $result = $this->db->get();
							 | 
						||
| 
								 | 
							
								        return $result->result();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function getArtistDetails($artistId) {
							 | 
						||
| 
								 | 
							
								        $this->db->select('artist.name as artistName, artist.id');
							 | 
						||
| 
								 | 
							
								        $this->db->from('artist');
							 | 
						||
| 
								 | 
							
								        $this->db->where('artist.id', $artistId);
							 | 
						||
| 
								 | 
							
								        $artistQuery = $this->db->get();
							 | 
						||
| 
								 | 
							
								        return $artistQuery->row();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function getAlbumsByArtist($artistId) {
							 | 
						||
| 
								 | 
							
								        $this->db->select('album.id as albumId, album.name as albumName, album.year, cover.jpeg, genre.name as genreName');
							 | 
						||
| 
								 | 
							
								        $this->db->from('album');
							 | 
						||
| 
								 | 
							
								        $this->db->join('genre', 'album.genreid = genre.id');
							 | 
						||
| 
								 | 
							
								        $this->db->join('cover', 'album.coverid = cover.id');
							 | 
						||
| 
								 | 
							
								        $this->db->where('album.artistid', $artistId);
							 | 
						||
| 
								 | 
							
								        $albumsQuery = $this->db->get();
							 | 
						||
| 
								 | 
							
								        $albums = $albumsQuery->result();
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								        foreach ($albums as $album) {
							 | 
						||
| 
								 | 
							
								            $this->db->select('track.id as trackId, song.name as songName');
							 | 
						||
| 
								 | 
							
								            $this->db->from('track');
							 | 
						||
| 
								 | 
							
								            $this->db->join('song', 'track.songid = song.id');
							 | 
						||
| 
								 | 
							
								            $this->db->where('track.albumid', $album->albumId);
							 | 
						||
| 
								 | 
							
								            $album->songs = $this->db->get()->result();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								        return $albums;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function get_total_artists($genre = '', $query = '') {
							 | 
						||
| 
								 | 
							
								        $this->db->select('artist.id'); // Sélectionnez uniquement l'ID de l'artiste
							 | 
						||
| 
								 | 
							
								        $this->db->from('artist');
							 | 
						||
| 
								 | 
							
								        $this->db->join('album', 'album.artistid = artist.id');
							 | 
						||
| 
								 | 
							
								        $this->db->join('genre', 'genre.id = album.genreid');
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								        if (!empty($genre)) {
							 | 
						||
| 
								 | 
							
								            $this->db->where('genre.name', $genre);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								        if (!empty($query)) {
							 | 
						||
| 
								 | 
							
								            $this->db->like('artist.name', $query);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								        $this->db->distinct(); // Assurez-vous que seules les lignes distinctes sont comptées
							 | 
						||
| 
								 | 
							
								        return $this->db->count_all_results();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								}
							 |