Php 相同相册名称查询结果
我正在尝试插入歌手的专辑,例如: 我的心:歌手1 可爱的:歌手1和歌手3 触摸我:歌手5 可爱的专辑,由两位歌手分享 以此类推,在用PHP显示结果时,我喜欢这样: 我的心:歌手1 可爱的:歌手1-歌手3 触摸我:歌手5 碰巧,我有一个相同的专辑名,歌手之间不共享,在显示结果时,它显示如下: 我的心:歌手1-歌手8 可爱的:歌手1-歌手3 触摸我:歌手5 我的心:歌手1-歌手8 但是,Singer1和Singer8不共享此相册,我想显示如下: 我的心:歌手1 可爱的:歌手1-歌手3 触摸我:歌手5 我的心:歌手8Php 相同相册名称查询结果,php,sql,Php,Sql,我正在尝试插入歌手的专辑,例如: 我的心:歌手1 可爱的:歌手1和歌手3 触摸我:歌手5 可爱的专辑,由两位歌手分享 以此类推,在用PHP显示结果时,我喜欢这样: 我的心:歌手1 可爱的:歌手1-歌手3 触摸我:歌手5 碰巧,我有一个相同的专辑名,歌手之间不共享,在显示结果时,它显示如下: 我的心:歌手1-歌手8 可爱的:歌手1-歌手3 触摸我:歌手5 我的心:歌手1-歌手8 但是,Singer1和Singer8不共享此相册,我想显示如下: 我的心:歌手1 可爱的:歌手1-歌手3 触摸我:歌手5
你想完成什么取决于你的数据库结构对不起,我不能理解你的查询语言。您的行应该具有唯一标识符;通常使用数字标识。你可能有一张桌子把唱片和歌手联系起来,对吧
album_singer
+---------------------+
| album | singer |
+---------------------+
| My Heart | Singer 1|
| My Heart | Singer 8|
| ... |
此表可能只包含您的专辑和歌手的ID
albums singers album_singer
+---------------------+ +---------------------+ +----------------------+
| Id | Name | | Id | Name | | album_id | singer_id |
+---------------------+ +---------------------+ +----------------------+
| 201 | My Heart | | 101 | Singer 1 | | 201 | 101 |
| 202 | My Heart | | 102 | Singer 8 | | 202 | 102 |
| ... | | ... | | ... |
如果这是您的结构,您的查询应该类似于:
SELECT albums.name as album_name,
singers.name as singer_name
FROM album_singer
JOIN albums on album_singer.album_id = albums.id
JOIN singers on album_singer.singer_id = singer.id
# Output:
# +------------------------------------+
# | album_name | singer_name |
# +------------------------------------+
# | My Heart | Singer 1 |
# | My Heart | Singer 2 |
# +------------------------------------+
这有用吗
//Assuming you are connected to the database...
$album_query = "SELECT id, album FROM album_table ORDER BY id";
$album_results = mysqli_query($database_connection, $album_query);
// Create while loop listing the albums.
while(list($id, $album) = mysqli_fetch_array($album_results, MYSQLI_NUM)){
echo 'Album -' . $album . '<br>';
echo 'Singers - ';
// Then create another query based on the first loop's album name.
// *note - would maybe be easier to do this with id's instead of names.
// If there are no common fields, perhaps you could set a variable from a JOIN in the first query. ?
$singers_query = "SELECT singer_id, singer_name, album
FROM singers_table
WHERE album = ' . $album . ' ";
$singers_results = mysqli_query($database_connection, $singers_query);
//Now create another while loop to nest inside the album loop.
while(list($singer_id, $singer_name, $album)=mysqli_fetch_array($singers_results, MYSQLI_NUM)){
echo $singer_name . ', ';
}
echo '<br><br>';
}
问题是,如果我们找到了同一张专辑,我就有机会决定是否在这张专辑中组合歌手,例如《我的心》,它不应该被组合,不管它多么可爱。如果“名称”列不是唯一的,你应该有一种独特的方式来识别每一行。对不起,我没有得到你的想法我的查询的结果:从mariyat_silsila JOIN mariyat_silsila_JOIN mariyat_silsila_JOIN ON mariyat_silsila.ids=mariyat_silsila_JOIN.id_silsilaj其中mariyat_silsila.silsila_tran=my Heart LIMIT 0,30有点像专辑名是我的心脏,歌手id是370,我的心脏和歌手id是375,我想我的桌子结构和你上面的桌子一样
//Assuming you are connected to the database...
$album_query = "SELECT id, album FROM album_table ORDER BY id";
$album_results = mysqli_query($database_connection, $album_query);
// Create while loop listing the albums.
while(list($id, $album) = mysqli_fetch_array($album_results, MYSQLI_NUM)){
echo 'Album -' . $album . '<br>';
echo 'Singers - ';
// Then create another query based on the first loop's album name.
// *note - would maybe be easier to do this with id's instead of names.
// If there are no common fields, perhaps you could set a variable from a JOIN in the first query. ?
$singers_query = "SELECT singer_id, singer_name, album
FROM singers_table
WHERE album = ' . $album . ' ";
$singers_results = mysqli_query($database_connection, $singers_query);
//Now create another while loop to nest inside the album loop.
while(list($singer_id, $singer_name, $album)=mysqli_fetch_array($singers_results, MYSQLI_NUM)){
echo $singer_name . ', ';
}
echo '<br><br>';
}