我开始学习一些 PHP/Mysql 并且我正在努力如何使它工作。
我有 2 张桌子。一个叫 ALBUM,另一个 TRACKS 在 ALBUM 上我有我需要的所有专辑信息(标题、发行日期、封面),在 TRACKS 上我有所有曲目名称和专辑 ID。
我可以使 SELECT 正常工作并获取所有内容,但是如何按专辑名称过滤并显示与该专辑相关的所有曲目?
现在我有这个
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>
谢谢