From 17a95f32cea22aa5a0cd7d6ccc0b1d074546f5ba Mon Sep 17 00:00:00 2001
From: charmett <charmett@localhost>
Date: Mon, 10 Jun 2024 14:08:26 +0200
Subject: [PATCH] vraiment beau boulot

---
 .../application/controllers/Artistes.php      | 21 +++++++++++++
 .../application/models/Model_music.php        | 13 ++++++++
 .../application/views/artistes_list.php       | 30 +++++++++++++++++++
 3 files changed, 64 insertions(+)
 create mode 100644 codeigniter/application/controllers/Artistes.php
 create mode 100644 codeigniter/application/views/artistes_list.php

diff --git a/codeigniter/application/controllers/Artistes.php b/codeigniter/application/controllers/Artistes.php
new file mode 100644
index 0000000..a8dbc69
--- /dev/null
+++ b/codeigniter/application/controllers/Artistes.php
@@ -0,0 +1,21 @@
+<?php
+defined('BASEPATH') OR exit('No direct script access allowed');
+
+class Artistes 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(){
+		$artistes = $this->model_music->getArtistes();
+		$this->load->view('layout/header');
+		$this->load->view('artistes_list', ['artistes'=>$artistes]);
+		$this->load->view('layout/footer');
+	}
+
+}
+
diff --git a/codeigniter/application/models/Model_music.php b/codeigniter/application/models/Model_music.php
index ddcbb79..621da0f 100644
--- a/codeigniter/application/models/Model_music.php
+++ b/codeigniter/application/models/Model_music.php
@@ -17,4 +17,17 @@ class Model_music extends CI_Model {
 		);
 	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();
+	}
 }
diff --git a/codeigniter/application/views/artistes_list.php b/codeigniter/application/views/artistes_list.php
new file mode 100644
index 0000000..68716d7
--- /dev/null
+++ b/codeigniter/application/views/artistes_list.php
@@ -0,0 +1,30 @@
+<h5>Artistes list</h5>
+<section class="list">
+<?php
+$artistAlbums = array();
+
+foreach ($artistes as $artist) {
+
+    if (!array_key_exists($artist->artistName, $artistAlbums)) {
+        $artistAlbums[$artist->artistName] = array();
+    }
+    $artistAlbums[$artist->artistName][] = array(
+        'albumName' => $artist->albumName,
+        'year' => $artist->year
+    );
+}
+
+foreach ($artistAlbums as $artistName => $albums) {
+    echo "<div><article>";
+    echo "<header class='short-text'>";
+    echo "<h2>$artistName</h2>";
+    echo "</header>";
+    echo "<ul>";
+    foreach ($albums as $album) {
+        echo "<li>" . $album['albumName'] . " - " . $album['year'] . "</li>";
+    }
+    echo "</ul>";
+    echo "</article></div>";
+}
+?>
+</section>