PHP/Mysql の学習を始めていますが、これを機能させるにはどうすればよいか苦労しています。
私は2つのテーブルを持っています。1 つは ALBUM と呼ばれ、もう 1 つは TRACKS です。ALBUM には必要なすべてのアルバム情報 (タイトル、リリース日、カバー) があり、TRACKS にはすべてのトラック名と関連するアルバム ID があります。
SELECT を正常に機能させてすべてのコンテンツを取得することはできますが、たとえば ALBUM 名でフィルタリングして、そのアルバムに関連するすべてのトラックを表示するにはどうすればよいでしょうか?
今、私はこれを持っています
define("MYSQLUSER", "root");
define("MYSQLPASS", "root");
define("HOSTNAME", "localhost");
define("MYSQLDB", "music");
$connection = new mysqli(HOSTNAME, MYSQLUSER, MYSQLPASS, MYSQLDB);
if ($connection->connect_error) {
die('Could not connect: ' . $connection->connect_error);
}else{
$query = "SELECT * from album AS a JOIN tracks AS t ON t.album = a.id ORDER BY a.id, t.trackNumber, t.album";
$result_obj = '';
$result_obj = $connection->query($query);
while($result = $result_obj->fetch_array(MYSQLI_ASSOC)){
$items[] = $result;
}
foreach ($items as $item){
echo "<ul><li>";
echo $item['name'];
echo " - "
echo $item['file'];
echo "</li></ul>";
}
問題は、すべてのアルバム/トラックを互いに別々に出力することです。
このような:
<ul>
<li>Album 1 - file 1</li>
</ul>
<ul>
<li>Album 1 - file 2</li>
</ul>
<ul>
<li>Album 2 - file 1</li>
</ul>
同じ ul/li タグでアルバムを作成するにはどうすればよいですか? 私は自分の foreach ループを知っています。しかし、私に何ができるでしょうか?
したがって、次のようになります。
<ul>
<li>Album 1 - file 1, Album 1 - file 2, Album 1 - file3</li>
<li>Album 2 - file 1</li>
</ul>
ありがとう