291 lines
		
	
	
		
			9.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			291 lines
		
	
	
		
			9.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 | 
						|
 | 
						|
class Model_music extends CI_Model {
 | 
						|
    public function __construct(){
 | 
						|
        $this->load->database();
 | 
						|
    }
 | 
						|
 | 
						|
    public function getAlbums($genre = '', $order = '', $artist = '', $query = '', $limit = 10, $offset = 0) {
 | 
						|
        $this->db->select('album.name, album.id, year, artist.name as artistName, genre.name as genreName, jpeg');
 | 
						|
        $this->db->from('album');
 | 
						|
        $this->db->join('artist', 'album.artistid = artist.id');
 | 
						|
        $this->db->join('genre', 'genre.id = album.genreid');
 | 
						|
        $this->db->join('cover', 'cover.id = album.coverid');
 | 
						|
 | 
						|
        if (!empty($genre)) {
 | 
						|
            $this->db->where('genre.name', $genre);
 | 
						|
        }
 | 
						|
 | 
						|
        if (!empty($artist)) {
 | 
						|
            $this->db->where('artist.name', $artist);
 | 
						|
        }
 | 
						|
 | 
						|
        if (!empty($query)) {
 | 
						|
            $this->db->like('album.name', $query);
 | 
						|
        }
 | 
						|
 | 
						|
        if ($order == 'asc' || $order == 'desc') {
 | 
						|
            $this->db->order_by('album.name', $order);
 | 
						|
        }
 | 
						|
 | 
						|
        $this->db->limit($limit, $offset);
 | 
						|
        
 | 
						|
        $query = $this->db->get();
 | 
						|
        return $query->result();
 | 
						|
    }
 | 
						|
 | 
						|
    public function countAllAlbums($genre = '', $artist = '', $query = '') {
 | 
						|
        $this->db->from('album');
 | 
						|
        $this->db->join('artist', 'album.artistid = artist.id');
 | 
						|
        $this->db->join('genre', 'genre.id = album.genreid');
 | 
						|
        $this->db->join('cover', 'cover.id = album.coverid');
 | 
						|
 | 
						|
        if (!empty($genre)) {
 | 
						|
            $this->db->where('genre.name', $genre);
 | 
						|
        }
 | 
						|
 | 
						|
        if (!empty($artist)) {
 | 
						|
            $this->db->where('artist.name', $artist);
 | 
						|
        }
 | 
						|
 | 
						|
        if (!empty($query)) {
 | 
						|
            $this->db->like('album.name', $query);
 | 
						|
        }
 | 
						|
 | 
						|
        return $this->db->count_all_results();
 | 
						|
    }
 | 
						|
 | 
						|
    public function researchtype(){
 | 
						|
        $this->db->select('name');
 | 
						|
        $this->db->from('genre');
 | 
						|
        $query = $this->db->get();
 | 
						|
        return $query->result();
 | 
						|
    }
 | 
						|
 | 
						|
    public function nameArtist(){
 | 
						|
        $this->db->select('name');
 | 
						|
        $this->db->from('artist');
 | 
						|
        $query = $this->db->get();
 | 
						|
        return $query->result();
 | 
						|
    }
 | 
						|
 | 
						|
    public function getArtists() {
 | 
						|
        $this->db->select('id, name');
 | 
						|
        $this->db->from('artist');
 | 
						|
        $query = $this->db->get();
 | 
						|
        return $query->result();
 | 
						|
    }
 | 
						|
 | 
						|
    public function getMusics($genre = '', $order = '', $artist = '', $query = '', $limit = 10, $offset = 0) {
 | 
						|
        $this->db->select('album.name as albumName, album.id as albumId, year, artist.name as artistName, genre.name as genreName, jpeg, song.name as trackName, track.id as trackId');
 | 
						|
        $this->db->from('track');
 | 
						|
        $this->db->join('album', 'track.albumid = album.id');
 | 
						|
        $this->db->join('song', 'song.id = track.songid');
 | 
						|
        $this->db->join('artist', 'album.artistid = artist.id');
 | 
						|
        $this->db->join('genre', 'genre.id = album.genreid');
 | 
						|
        $this->db->join('cover', 'cover.id = album.coverid');
 | 
						|
    
 | 
						|
        if (!empty($genre)) {
 | 
						|
            $this->db->where('genre.name', $genre);
 | 
						|
        }
 | 
						|
    
 | 
						|
        if (!empty($artist)) {
 | 
						|
            $this->db->where('artist.name', $artist);
 | 
						|
        }
 | 
						|
    
 | 
						|
        if (!empty($query)) {
 | 
						|
            $this->db->like('song.name', $query);
 | 
						|
        }
 | 
						|
    
 | 
						|
        if ($order == 'asc' || $order == 'desc') {
 | 
						|
            $this->db->order_by('song.name', $order);
 | 
						|
        }
 | 
						|
 | 
						|
        $this->db->limit($limit, $offset);
 | 
						|
    
 | 
						|
        $result = $this->db->get();
 | 
						|
        return $result->result();
 | 
						|
    }
 | 
						|
 | 
						|
    public function getTotalMusics($genre = '', $artist = '', $query = '') {
 | 
						|
        $this->db->from('track');
 | 
						|
        $this->db->join('album', 'track.albumid = album.id');
 | 
						|
        $this->db->join('song', 'song.id = track.songid');
 | 
						|
        $this->db->join('artist', 'album.artistid = artist.id');
 | 
						|
        $this->db->join('genre', 'genre.id = album.genreid');
 | 
						|
        $this->db->join('cover', 'cover.id = album.coverid');
 | 
						|
        
 | 
						|
        if (!empty($genre)) {
 | 
						|
            $this->db->where('genre.name', $genre);
 | 
						|
        }
 | 
						|
        
 | 
						|
        if (!empty($artist)) {
 | 
						|
            $this->db->where('artist.name', $artist);
 | 
						|
        }
 | 
						|
        
 | 
						|
        if (!empty($query)) {
 | 
						|
            $this->db->like('song.name', $query);
 | 
						|
        }
 | 
						|
        
 | 
						|
        return $this->db->count_all_results();
 | 
						|
    }
 | 
						|
    
 | 
						|
    public function countAllMusics($genre = '', $artist = '', $query = '') {
 | 
						|
        $this->db->from('track');
 | 
						|
        $this->db->join('album', 'track.albumid = album.id');
 | 
						|
        $this->db->join('song', 'song.id = track.songid');
 | 
						|
        $this->db->join('artist', 'album.artistid = artist.id');
 | 
						|
        $this->db->join('genre', 'genre.id = album.genreid');
 | 
						|
        $this->db->join('cover', 'cover.id = album.coverid');
 | 
						|
        
 | 
						|
        if (!empty($genre)) {
 | 
						|
            $this->db->where('genre.name', $genre);
 | 
						|
        }
 | 
						|
        
 | 
						|
        if (!empty($artist)) {
 | 
						|
            $this->db->where('artist.name', $artist);
 | 
						|
        }
 | 
						|
        
 | 
						|
        if (!empty($query)) {
 | 
						|
            $this->db->like('song.name', $query);
 | 
						|
        }
 | 
						|
        
 | 
						|
        return $this->db->count_all_results();
 | 
						|
    }
 | 
						|
    
 | 
						|
    
 | 
						|
 | 
						|
    public function getAlbumDetails($albumId) {
 | 
						|
        $this->db->select('album.name as albumName, album.id, year, artist.name as artistName, genre.name as genreName, jpeg');
 | 
						|
        $this->db->from('album');
 | 
						|
        $this->db->join('artist', 'album.artistid = artist.id');
 | 
						|
        $this->db->join('genre', 'genre.id = album.genreid');
 | 
						|
        $this->db->join('cover', 'cover.id = album.coverid');
 | 
						|
        $this->db->where('album.id', $albumId);
 | 
						|
        $albumQuery = $this->db->get();
 | 
						|
        $albumDetails = $albumQuery->row();
 | 
						|
    
 | 
						|
        $this->db->select('song.name as trackName, track.id as trackId');
 | 
						|
        $this->db->from('track');
 | 
						|
        $this->db->join('song', 'track.songId = song.id');
 | 
						|
        $this->db->where('track.albumId', $albumId);
 | 
						|
        $songsQuery = $this->db->get();
 | 
						|
        $songs = $songsQuery->result();
 | 
						|
    
 | 
						|
        return array('album' => $albumDetails, 'songs' => $songs);
 | 
						|
    }
 | 
						|
 | 
						|
    public function getAlbumsByArtist($artistId) {
 | 
						|
        $this->db->select('album.id as albumId');
 | 
						|
        $this->db->from('album');
 | 
						|
        $this->db->where('album.artistid', $artistId);
 | 
						|
        $query = $this->db->get();
 | 
						|
        return $query->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 getSongDetails($songId) {
 | 
						|
        $this->db->select('
 | 
						|
            song.name as songName, 
 | 
						|
            song.id as songId, 
 | 
						|
            album.name as albumName, 
 | 
						|
            album.id as albumId, 
 | 
						|
            album.year, 
 | 
						|
            artist.name as artistName, 
 | 
						|
            artist.id as artistId, 
 | 
						|
            cover.jpeg,
 | 
						|
            track.diskNumber, 
 | 
						|
            track.number, 
 | 
						|
            track.duration
 | 
						|
        ');
 | 
						|
        $this->db->from('track');
 | 
						|
        $this->db->join('album', 'track.albumid = album.id');
 | 
						|
        $this->db->join('song', 'song.id = track.songid');
 | 
						|
        $this->db->join('artist', 'album.artistid = artist.id');
 | 
						|
        $this->db->join('cover', 'cover.id = album.coverid');
 | 
						|
        $this->db->where('track.id', $songId);
 | 
						|
    
 | 
						|
        $result = $this->db->get();
 | 
						|
        return $result->row_array();
 | 
						|
    }
 | 
						|
 | 
						|
    public function getSongsByAlbum($albumId) {
 | 
						|
        $this->db->select('track.id as trackId');
 | 
						|
        $this->db->from('track');
 | 
						|
        $this->db->where('track.albumid', $albumId);
 | 
						|
        $query = $this->db->get();
 | 
						|
        return $query->result();
 | 
						|
    }
 | 
						|
    
 | 
						|
 | 
						|
    public function getSongsByArtist($artistName) {
 | 
						|
        $this->db->select('track.id as trackId, song.name as trackName');
 | 
						|
        $this->db->from('track');
 | 
						|
        $this->db->join('song', 'song.id = track.songid');
 | 
						|
        $this->db->join('album', 'album.id = track.albumid');
 | 
						|
        $this->db->join('artist', 'artist.id = album.artistid');
 | 
						|
        $this->db->where('artist.name', $artistName);
 | 
						|
        $query = $this->db->get();
 | 
						|
        return $query->result();
 | 
						|
    }
 | 
						|
    
 | 
						|
    public function getSongsByGenre($genreName) {
 | 
						|
        $this->db->select('track.id as trackId, song.name as trackName');
 | 
						|
        $this->db->from('track');
 | 
						|
        $this->db->join('song', 'song.id = track.songid');
 | 
						|
        $this->db->join('album', 'album.id = track.albumid');
 | 
						|
        $this->db->join('genre', 'genre.id = album.genreid');
 | 
						|
        $this->db->where('genre.name', $genreName);
 | 
						|
        $query = $this->db->get();
 | 
						|
        return $query->result();
 | 
						|
    }
 | 
						|
 | 
						|
    public function getRandomSongs($numSongs, $artist = '', $genre = '') {
 | 
						|
        $this->db->select('track.id as trackId');
 | 
						|
        $this->db->from('track');
 | 
						|
        $this->db->join('album', 'track.albumid = album.id');
 | 
						|
        $this->db->join('song', 'song.id = track.songid');
 | 
						|
        $this->db->join('artist', 'album.artistid = artist.id');
 | 
						|
        $this->db->join('genre', 'album.genreid = genre.id');
 | 
						|
    
 | 
						|
        if (!empty($artist)) {
 | 
						|
            $this->db->where('artist.name', $artist);
 | 
						|
        }
 | 
						|
    
 | 
						|
        if (!empty($genre)) {
 | 
						|
            $this->db->where('genre.name', $genre);
 | 
						|
        }
 | 
						|
    
 | 
						|
        $this->db->order_by('RAND()');
 | 
						|
        $this->db->limit($numSongs);
 | 
						|
    
 | 
						|
        $query = $this->db->get();
 | 
						|
        return $query->result();
 | 
						|
    }
 | 
						|
    
 | 
						|
 | 
						|
    public function getGenres() {
 | 
						|
        $this->db->select('id, name');
 | 
						|
        $this->db->from('genre');
 | 
						|
        $query = $this->db->get();
 | 
						|
        return $query->result();
 | 
						|
    }
 | 
						|
 | 
						|
    public function getAllSongs() {
 | 
						|
        $this->db->select('track.id as trackId, song.name as trackName');
 | 
						|
        $this->db->from('track');
 | 
						|
        $this->db->join('song', 'song.id = track.songid');
 | 
						|
        $query = $this->db->get();
 | 
						|
        return $query->result();
 | 
						|
    }
 | 
						|
    
 | 
						|
}
 |