2024-06-04 16:21:07 +02:00
< ? php if ( ! defined ( 'BASEPATH' )) exit ( 'No direct script access allowed' );
2024-05-29 10:29:40 +02:00
class Model_music extends CI_Model {
2024-06-04 16:21:07 +02:00
public function __construct (){
$this -> load -> database ();
}
2024-05-29 10:29:40 +02:00
2024-06-04 16:39:51 +02:00
public function getAlbums ( $genre = '' , $order = 'asc' , $artist = '' , $query = '' ) {
2024-06-04 16:18:03 +02:00
$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' );
2024-06-03 16:51:37 +02:00
2024-06-04 16:18:03 +02:00
if ( ! empty ( $genre )){
$this -> db -> where ( 'genre.name' , $genre );
}
2024-06-03 16:51:37 +02:00
2024-06-04 16:18:03 +02:00
if ( ! empty ( $artist )){
$this -> db -> where ( 'artist.name' , $artist );
}
2024-06-03 16:51:37 +02:00
2024-06-04 16:18:03 +02:00
if ( $order == 'asc' || $order == 'desc' ){
$this -> db -> order_by ( 'album.name' , $order );
}
2024-06-03 16:51:37 +02:00
2024-06-04 21:29:47 +02:00
if ( ! empty ( $query )){
$this -> db -> like ( 'album.name' , $query );
}
2024-06-04 16:18:03 +02:00
$query = $this -> db -> get ();
return $query -> result ();
}
2024-06-03 16:51:37 +02:00
2024-06-04 16:18:03 +02:00
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 ();
}
2024-06-03 16:51:37 +02:00
2024-06-04 22:09:23 +02:00
public function getArtists ( $genre = '' , $order = 'asc' , $query = '' ) {
2024-06-04 16:21:07 +02:00
$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' );
2024-06-04 22:09:23 +02:00
2024-06-04 16:21:07 +02:00
$this -> db -> distinct ( " artist.name " );
2024-06-04 22:09:23 +02:00
2024-06-04 21:43:46 +02:00
if ( ! empty ( $genre )) {
2024-06-04 16:21:07 +02:00
$this -> db -> where ( 'genre.name' , $genre );
}
2024-06-04 22:09:23 +02:00
2024-06-04 21:43:46 +02:00
if ( $order == 'asc' || $order == 'desc' ) {
$this -> db -> order_by ( 'artist.name' , $order );
2024-06-04 16:21:07 +02:00
}
2024-06-04 22:09:23 +02:00
2024-06-04 21:43:46 +02:00
if ( ! empty ( $query )) {
$this -> db -> like ( 'artist.name' , $query );
}
2024-06-04 22:09:23 +02:00
2024-06-04 21:43:46 +02:00
$result = $this -> db -> get ();
return $result -> result ();
2024-06-04 16:21:07 +02:00
}
2024-06-04 22:09:23 +02:00
2024-06-04 16:21:07 +02:00
2024-06-04 22:09:23 +02:00
public function getMusics ( $genre = '' , $order = '' , $artist = '' , $query = '' ) {
2024-06-05 08:11:10 +02:00
$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' );
2024-06-04 16:21:07 +02:00
$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 );
2024-06-04 21:43:46 +02:00
if ( ! empty ( $genre )) {
2024-06-04 16:21:07 +02:00
$this -> db -> where ( 'genre.name' , $genre );
}
2024-06-04 21:43:46 +02:00
if ( ! empty ( $artist )) {
2024-06-04 16:21:07 +02:00
$this -> db -> where ( 'artist.name' , $artist );
}
2024-06-04 21:43:46 +02:00
if ( $order == 'asc' || $order == 'desc' ) {
$this -> db -> order_by ( 'song.name' , $order );
2024-06-04 16:21:07 +02:00
}
2024-06-04 21:43:46 +02:00
if ( ! empty ( $query )) {
$this -> db -> like ( 'song.name' , $query );
}
$result = $this -> db -> get ();
return $result -> result ();
2024-06-04 16:21:07 +02:00
}
2024-06-04 22:46:59 +02:00
public function getAlbumDetails ( $albumId ) {
// Get album info
$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 ();
// Get album songs
$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 );
}
2024-06-05 01:01:55 +02:00
2024-06-04 22:55:02 +02:00
public function getArtistDetails ( $artistId ) {
// Get artist info
2024-06-05 01:03:10 +02:00
$this -> db -> select ( 'artist.name as artistName, artist.id' );
2024-06-04 22:55:02 +02:00
$this -> db -> from ( 'artist' );
$this -> db -> where ( 'artist.id' , $artistId );
$artistQuery = $this -> db -> get ();
$artistDetails = $artistQuery -> row ();
2024-06-05 00:59:23 +02:00
// Get artist's albums with their songs
2024-06-04 23:26:09 +02:00
$this -> db -> select ( 'album.id as albumId, album.name as albumName, album.year' );
2024-06-04 22:55:02 +02:00
$this -> db -> from ( 'album' );
$this -> db -> where ( 'album.artistid' , $artistId );
$albumsQuery = $this -> db -> get ();
$albums = $albumsQuery -> result ();
2024-06-05 00:59:23 +02:00
// Get songs for each album
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 ();
}
2024-06-04 22:55:02 +02:00
return array ( 'artist' => $artistDetails , 'albums' => $albums );
}
2024-06-04 23:30:04 +02:00
2024-06-04 23:26:09 +02:00
public function getSongDetails ( $songId ) {
2024-06-05 08:08:12 +02:00
$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' );
$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 ();
2024-06-04 23:26:09 +02:00
}
2024-06-04 22:46:59 +02:00
2024-06-04 16:21:07 +02:00
// Suppression de la deuxième méthode researchtype
public function research (){
2024-06-04 21:51:30 +02:00
$result = $this -> db -> query ();
2024-06-04 16:21:07 +02:00
}
2024-05-29 10:29:40 +02:00
}