Я пытаюсь правильно отобразить запрос MySQL на веб-странице.
У меня есть 4 простые таблицы, которые соединены вместе
singers
: singer_id
, singer_name
songs
: singer_id
, song_name
, album_id
albums
: singer_id
, album_id
, album_name
Мне уже удалосьчтобы получить эти таблицы с помощью этого запроса.
SELECT singers.singer_name, songs.song_name, albums.album_name
FROM singers
LEFT JOIN songs ON singers.singer_id = songs.singer_id
LEFT JOIN albums ON albums.album_id = songs.album_id
WHERE singers.singer_id = ?
ORDER BY songs.song_id DESC
проблема, с которой я сейчас сталкиваюсь, заключается в том, что я не могу правильно отобразить эти таблицы.
Допустим, у меня есть певец с 1 альбомоми 11 песен.Вот результат, который я получаю для этого певца.
singer_name | song_name | album_name
__________________________________________________
singer name | song name | album name
singer name | song name | album name
singer name | song name | album name
singer name | song name | album name
singer name | song name | album name
singer name | song name | album name
singer name | song name | album name
singer name | song name | album name
singer name | song name | album name
singer name | song name | album name
singer name | song name | album name
, поэтому вместо того, чтобы получить 1 альбом, я получаю один и тот же альбом 11 раз.
на веб-странице яотображение альбомов с использованием foreach()
, и я получаю один и тот же альбом вместо одного альбома.
теперь по вопросу ....
Как я могу отобразить альбом ТОЛЬКО 3 раза?
(без жесткого кодирования, потому что у меня также может быть певец с 9 альбомами).
заранее благодарен за любую помощь.
РЕДАКТИРОВАТЬ:
так я отображаю песни
<?php foreach($results as $song): ?>
<tr>
<td></td>
<td>
<a href="/song/<?php echo urlencode($song['song_url']); ?>/" class="song">
<span><?php echo $song['song_name']; ?></span>
</a>
</td>
<td>
<a href="/album/<?php echo urlencode($song['album_name']); ?>/" class="album">
<?php echo $song['album_name']; ?>
</a>
</td>
<td>
<span class="time">
<?php echo $song['song_time']; ?>
</span>
</td>
<td>
<a href="/search/?search=<?php echo urlencode($song['song_genre']); ?>" class="genre">
<?php echo $song['song_genre']; ?>
</a>
</td>
<td><a href="#" class="play">נגן</a></td>
</tr>
<?php endforeach; ?>
я получаю все песни, даже если они не привязаны ни к какому альбому.как раз то, что я хотел.
проблема с отображением альбомов:
<?php foreach($results as $album): ?>
<li>
<a href="/album/<?php echo urlencode($album['url']); ?>/" class="album">
<img src="/media/<?php echo $album['singer_dir'] . '/' . $album['album_thumb']; ?>" alt="" />
<span class="album_name"><?php echo $album['album_name']; ?></span>
</a>
</li>
<?php endforeach; ?>
у этого певца есть 1 альбом, но я получаю его 11 раз.потому что в этом альбоме 11 песен.мне нужно отобразить его только один раз ....