load->database(); } public function getAlbums($genre = '', $order = 'asc', $artist = '', $query = '') { $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($order == 'asc' || $order == 'desc'){ $this->db->order_by('album.name', $order); } if(!empty($query)){ $this->db->like('album.name', $query); } $query = $this->db->get(); return $query->result(); } 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($genre = '', $order = 'asc', $query = '') { $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->join('cover', 'cover.id = album.coverid'); $this->db->distinct("artist.name"); 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); } $result = $this->db->get(); return $result->result(); } public function getMusics($genre = '', $order = '', $artist = '', $query = '') { $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'); $this->db->limit(100); if (!empty($genre)) { $this->db->where('genre.name', $genre); } if (!empty($artist)) { $this->db->where('artist.name', $artist); } if ($order == 'asc' || $order == 'desc') { $this->db->order_by('song.name', $order); } if (!empty($query)) { $this->db->like('song.name', $query); } $result = $this->db->get(); return $result->result(); } 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, 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 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'); $this->db->from('track'); $this->db->where('track.albumid', $albumId); $query = $this->db->get(); return $query->result(); } public function getSongsByArtist($artistId) { $this->db->select('track.id'); $this->db->from('track'); $this->db->join('album', 'track.albumid = album.id'); $this->db->where('album.artistid', $artistId); $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(); } }