vraiment bon travail

This commit is contained in:
Enzo CHARMETTAN 2024-06-17 15:10:10 +02:00
parent 17a95f32ce
commit be76f14c4a
5 changed files with 126 additions and 37 deletions

@ -0,0 +1,28 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Music extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->model('model_music');
$this->load->helper('html');
$this->load->helper('url');
$this->load->helper('form');
}
public function index(){
$musics = $this->model_music->getMusics();
$this->load->view('layout/header');
$this->load->view('musics_list', ['musics' => $musics]);
$this->load->view('layout/footer');
}
public function view($albumId){
// Récupérer les musiques pour un album spécifique
$musics = $this->model_music->getMusicsByAlbum($albumId);
$this->load->view('layout/header');
$this->load->view('album_musics', ['musics' => $musics]);
$this->load->view('layout/footer');
}
}

@ -1,33 +1,77 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Model_music extends CI_Model {
public function __construct(){
$this->load->database();
}
public function __construct(){
$this->load->database();
}
public function getAlbums(){
$query = $this->db->query(
"SELECT album.name,album.id,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
ORDER BY year
"
);
return $query->result();
}
public function getAlbums(){
$query = $this->db->query(
"SELECT album.name, album.id, 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
ORDER BY year"
);
return $query->result();
}
public function getArtistes(){
$query = $this->db->query(
"SELECT artist.id AS artistId, artist.name AS artistName, album.name AS albumName, album.year, cover.jpeg
FROM album
INNER JOIN artist ON album.artistId = artist.id
JOIN cover ON cover.id = album.coverId
GROUP BY artist.name, album.year
"
);
return $query->result();
}
public function getArtistes(){
$query = $this->db->query(
"SELECT artist.id AS artistId, artist.name AS artistName, album.name AS albumName, album.id AS albumId, album.year, cover.jpeg
FROM album
INNER JOIN artist ON album.artistId = artist.id
JOIN cover ON cover.id = album.coverId
GROUP BY artist.name, album.year"
);
return $query->result();
}
public function getMusics(){
$query = $this->db->query(
"SELECT
track.id AS trackId,
track.number AS trackNumber,
track.duration AS trackDuration,
track.diskNumber AS diskNumber,
album.id AS albumId,
album.name AS albumName,
album.year AS albumYear,
artist.name AS artistName,
song.id AS songId,
song.name AS songName,
cover.jpeg AS coverImage
FROM track
JOIN album ON track.albumId = album.id
JOIN artist ON album.artistId = artist.id
JOIN song ON track.songId = song.id
JOIN cover ON album.coverId = cover.id
ORDER BY album.id, track.diskNumber, track.number"
);
return $query->result();
}
public function getMusicsByAlbum($albumId){
$query = $this->db->query(
"SELECT
track.id AS trackId,
track.number AS trackNumber,
track.duration AS trackDuration,
track.diskNumber AS diskNumber,
album.id AS albumId,
album.name AS albumName,
artist.name AS artistName,
song.id AS songId,
song.name AS songName
FROM track
JOIN album ON track.albumId = album.id
JOIN artist ON album.artistId = artist.id
JOIN song ON track.songId = song.id
WHERE album.id = ?
ORDER BY track.diskNumber, track.number",
array($albumId)
);
return $query->result();
}
}

@ -0,0 +1,17 @@
<h5>Liste des Musiques de l'Album</h5>
<section class="list">
<?php
foreach ($musics as $music) {
echo "<div><article>";
echo "<ul>";
echo "<li>Durée: {$music->trackDuration} secondes</li>";
echo "<li>$music->songName</li>";
echo "</ul>";
echo "</article></div>";
}
?>
</section>
// songs/view/{$music->songId},

@ -1,15 +1,14 @@
<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 "</header>";
echo '<img src="data:image/jpeg;base64,'.base64_encode($album->jpeg).'" />';
echo "<footer class='short-text'>{$album->year} - {$album->artistName}</footer>
</article></div>";
echo "<div><article>";
echo "<header class='short-text'>";
echo anchor("music/view/{$album->id}", "{$album->name}");
echo "</header>";
echo '<img src="data:image/jpeg;base64,'.base64_encode($album->jpeg).'" />';
echo "<footer class='short-text'>{$album->year} - {$album->artistName}</footer>
</article></div>";
}
?>
</section>

@ -10,6 +10,7 @@ foreach ($artistes as $artist) {
}
$artistAlbums[$artist->artistName][] = array(
'albumName' => $artist->albumName,
'albumId' => $artist->albumId,
'year' => $artist->year
);
}
@ -21,7 +22,7 @@ foreach ($artistAlbums as $artistName => $albums) {
echo "</header>";
echo "<ul>";
foreach ($albums as $album) {
echo "<li>" . $album['albumName'] . " - " . $album['year'] . "</li>";
echo "<li>" . anchor("music/view/{$album['albumId']}", $album['albumName']) . " - " . $album['year'] . "</li>";
}
echo "</ul>";
echo "</article></div>";