在表中选择使用连接表和数组

时间:2015-08-21 12:48:56

标签: php mysql sql

您好我有2张桌子

|id|musicname|url|image|type

和第二个表

|id|user|songslist|

里面的songsids是一个像这样的数组 1,3,5,6,8等...

我的目标是从table1中选择*并像在数组中一样回显table1,而不是表两个数组,即table1的实际行。

所以基本上要取出包含在songslist中的id的每一行,并将它们全部放入php数组中。

我已经学到了很多关于PHP数组的知识,但是我对mysql不太了解,我对如何做到这一点有任何想法?

修改

$selectmusiclist = mysql_query("SELECT * FROM music");
$songslist = array();
while ($songs = mysql_fetch_assoc($selectmusiclist)){
 $songslist[] = $songs;
}

然后表2选择:

 $username="user1";
 $selectuser = mysql_query("SELECT * FROM usersmusic where user=$username");
 $user = mysql_fetch_assoc($selectuser);
 $songslist = $user['songslist'];

现在我需要告诉数组$ songslist []只输出id为$ songslist的歌曲

1 个答案:

答案 0 :(得分:2)

我认为运行这样的连接会为您提供所需的结果。

SELECT * FROM usersmusic as um
join music as m
on um.songslist = m.id
where user = '$username'

如果$username不是静态值,请确保将其转义;不希望将来注入SQL。

另请注意,mysql_驱动程序现已弃用,您应考虑更新为mysqliPDO