avoir les musique dans album et avoir les album dans artiste
This commit is contained in:
@@ -18,13 +18,29 @@ class Albums extends CI_Controller {
|
||||
}
|
||||
$this->load->view('layout/header');
|
||||
if ($albums == false){
|
||||
$page = preg_split('/[\/]/',$_SERVER['HTTP_REFERER']);
|
||||
$this->load->view('error',['page'=>$page[count($page)-1]]);
|
||||
//$page = preg_split('/[\/]/',$_SERVER['HTTP_REFERER']);
|
||||
//$this->load->view('error',['page'=>$page[count($page)-1]]);
|
||||
$albums = $this->model_music->getAlbums();
|
||||
}
|
||||
$this->load->view('albums_list',['albums'=>$albums]);
|
||||
$this->load->view('layout/footer');
|
||||
}
|
||||
|
||||
public function viewMusique($id) {
|
||||
$albums = $this->model_music->getAlbumChoose($id);
|
||||
if ($albums) {
|
||||
$this->load->view('layout/header');
|
||||
$this->load->view('albums_view', ['albums' => $albums]);
|
||||
$this->load->view('layout/footer');
|
||||
}
|
||||
}
|
||||
|
||||
public function viewAlbum($Id) {
|
||||
$albums = $this->model_music->getAlbumsByArtistId($Id);
|
||||
$this->load->view('layout/header');
|
||||
$this->load->view('albums_list', ['albums' => $albums]);
|
||||
$this->load->view('layout/footer');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ class Model_music extends CI_Model {
|
||||
|
||||
public function getAlbums(){
|
||||
$query = $this->db->query(
|
||||
"SELECT album.name,album.id,year,artist.name as artistName, genre.name as genreName,jpeg
|
||||
"SELECT album.name,album.id as albumId,year,artist.name as artistName, genre.name as genreName,jpeg
|
||||
FROM album
|
||||
JOIN artist ON album.artistid = artist.id
|
||||
JOIN genre ON genre.id = album.genreid
|
||||
@@ -44,7 +44,7 @@ class Model_music extends CI_Model {
|
||||
|
||||
public function getSearchAlbums($nom){
|
||||
$query = $this->db->query(
|
||||
"SELECT album.name,album.id,year,artist.name as artistName, genre.name as genreName,jpeg
|
||||
"SELECT album.name,album.id as albumId,year,artist.name as artistName, genre.name as genreName,jpeg
|
||||
FROM album
|
||||
JOIN artist ON album.artistid = artist.id
|
||||
JOIN genre ON genre.id = album.genreid
|
||||
@@ -52,9 +52,9 @@ class Model_music extends CI_Model {
|
||||
WHERE album.name LIKE '$nom'
|
||||
"
|
||||
);
|
||||
$query->result();
|
||||
//$query->result();
|
||||
if ($query->num_rows() > 0){
|
||||
return $query;
|
||||
return $query->result();
|
||||
}
|
||||
return $query = false;
|
||||
}
|
||||
@@ -68,7 +68,7 @@ class Model_music extends CI_Model {
|
||||
);
|
||||
$query->result();
|
||||
if ($query->num_rows() > 0){
|
||||
return $query;
|
||||
return $query->result();
|
||||
}
|
||||
return $query = false;
|
||||
}
|
||||
@@ -87,8 +87,74 @@ class Model_music extends CI_Model {
|
||||
);
|
||||
$query->result();
|
||||
if ($query->num_rows() > 0){
|
||||
return $query;
|
||||
return $query->result();
|
||||
}
|
||||
return $query = false;
|
||||
}
|
||||
|
||||
public function getAlbumChoose($id) {
|
||||
$this->db->where('id', $id);
|
||||
$query = $this->db->get('album');
|
||||
$album = $query->row();
|
||||
|
||||
// Recupere la couverture
|
||||
$this->db->where('id', $album->coverId);
|
||||
$coverQuery = $this->db->get('cover');
|
||||
$cover = $coverQuery->row();
|
||||
$album->coverImage = $cover->jpeg;
|
||||
// Recupere le l'id de la musique a partie de l'album
|
||||
$this->db->select('songId');
|
||||
$this->db->where('albumId', $id);
|
||||
$songsQuery = $this->db->get('track');
|
||||
$songIds = $songsQuery->result();
|
||||
|
||||
// Récupérer les noms des chansons à partir des songIds
|
||||
$album->songs = [];
|
||||
foreach ($songIds as $song) {
|
||||
$this->db->select('name');
|
||||
$this->db->where('id', $song->songId);
|
||||
$songQuery = $this->db->get('song');
|
||||
$songData = $songQuery->row();
|
||||
$album->songs[] = $songData->name;
|
||||
}
|
||||
|
||||
$album->tracks = [];
|
||||
foreach ($songIds as $song) {
|
||||
$this->db->select('song.name as songName, track.duration');
|
||||
$this->db->from('track');
|
||||
$this->db->join('song', 'track.songId = song.id');
|
||||
$this->db->where('track.songId', $song->songId);
|
||||
$trackQuery = $this->db->get();
|
||||
$trackData = $trackQuery->row();
|
||||
$album->tracks[] = $trackData;
|
||||
}
|
||||
|
||||
$this->db->where('id', $album->artistId);
|
||||
$artistQuery = $this->db->get('artist');
|
||||
$artist = $artistQuery->row();
|
||||
$album->artist = $artist;
|
||||
|
||||
$this->db->where('id', $album->artistId);
|
||||
$artistQuery = $this->db->get('artist');
|
||||
$artist = $artistQuery->row();
|
||||
$album->artist = $artist;
|
||||
|
||||
|
||||
|
||||
return $album;
|
||||
}
|
||||
|
||||
public function getAlbumsByArtistId($artistId) {
|
||||
$query = $this->db->query(
|
||||
"SELECT album.name,album.id as albumId,year,artist.name as artistName, genre.name as genreName,jpeg
|
||||
FROM album
|
||||
JOIN artist ON album.artistid = artist.id
|
||||
JOIN genre ON genre.id = album.genreid
|
||||
JOIN cover ON cover.id = album.coverid
|
||||
WHERE album.artistid=$artistId
|
||||
ORDER BY year
|
||||
"
|
||||
);
|
||||
return $query->result();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
<h5>Albums list</h5>
|
||||
<section class="list">
|
||||
<?php
|
||||
|
||||
|
||||
foreach($albums as $album){
|
||||
|
||||
echo "<div><article>";
|
||||
echo "<header class='short-text'>";
|
||||
echo anchor("albums/view/{$album->id}","{$album->name}");
|
||||
echo anchor("albums/viewMusique/{$album->albumId}","{$album->name}");
|
||||
echo "</header>";
|
||||
echo '<img src="data:image/jpeg;base64,'.base64_encode($album->jpeg).'" />';
|
||||
echo "<nav class='short-text'>Genre: {$album->genreName}</nav>";
|
||||
|
||||
67
CodeIgniter-3.1.13/application/views/albums_view.php
Normal file
67
CodeIgniter-3.1.13/application/views/albums_view.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<section class="albums-details">
|
||||
<div class="albums-content">
|
||||
<div class="albums-image">
|
||||
<?php
|
||||
echo '<img src="data:image/jpeg;base64,' . base64_encode($albums->coverImage) . '" style="width: 300px; height: 300px;" />';
|
||||
?>
|
||||
<br>
|
||||
<br>
|
||||
<h4><?php echo $albums->name; ?></h4>
|
||||
|
||||
<h8> <?php echo " - Artiste : " . $albums->artist->name; ?></h8>
|
||||
<p><?php echo " - Année : " . $albums->year; ?></p>
|
||||
|
||||
</div>
|
||||
<div class="albums-songs">
|
||||
<?php
|
||||
// Afficher les noms des chansons sous forme de tableau
|
||||
echo "<table>";
|
||||
echo "<tr>";
|
||||
echo "<th><h6>Titre</h6></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
|
||||
echo "<th><h6>Durée</h6></th>";
|
||||
|
||||
echo "</tr>";
|
||||
foreach ($albums->songs as $index => $songName) {
|
||||
$artistName = $albums->artist->name;
|
||||
$duration = isset($albums->tracks[$index]->duration) ? convertirSecondesEnMinutes($albums->tracks[$index]->duration) : '';
|
||||
echo "<td>{$songName}</td>";
|
||||
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
echo "<th></th>";
|
||||
|
||||
echo "<td>{$duration}</td>";
|
||||
echo "</tr>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
echo "</table>";
|
||||
|
||||
|
||||
|
||||
function convertirSecondesEnMinutes($secondes) {
|
||||
$minutes = floor($secondes / 60);
|
||||
$secondesRestantes = $secondes % 60;
|
||||
return sprintf('%02d:%02d', $minutes, $secondesRestantes);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -4,7 +4,7 @@
|
||||
foreach($artistes as $artistes){
|
||||
echo "<div><article>";
|
||||
echo "<header class='short-text'>";
|
||||
echo anchor("artistes/view/{$artistes->id}","{$artistes->name}");
|
||||
echo anchor("albums/viewAlbum/{$artistes->id}","{$artistes->name}");
|
||||
echo "</header>";
|
||||
echo "</article></div>";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user