2015-08-21 12 views
1

您好我有2个表选择使用连接表和阵列中的表

|id|musicname|url|image|type 

和第二表

|id|user|songslist| 

内部songsids那里有这样 1,3,5-阵列, 6,8等...

什么林旨在做的是select * from table1和echo数组中的table1,而不是table两个数组,table1的实际行。

所以基本上要取出每个包含歌曲列表中的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歌曲包含IDS

+0

您正在选择和输出的当前代码是什么? – chris85

+0

'$ selectmusiclist = mysql_query(“SELECT * FROM music”); \t $ songslist = array(); ($ songs = mysql_fetch_assoc($ selectmusiclist)){$ songslist [] = $ songs; }' 当然,只输出表1,但我需要它与表2交互 我也使用'foreach'分别输出它 –

+0

请更新您的问题与代码,以便更容易阅读。你是问在一个查询中如何从两个表中获取所有数据,或者如何获取ID? – chris85

回答

2

我认为运行这样的连接会给你后面的结果。

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

如果$username不是一个静态值,请确保您转义它;不想在未来注入SQL。

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

+0

谢谢,我希望这个工程,我现在要测试它,谢谢! –

+0

请在接受之前测试答案。 – chris85

+0

是的,你是对的,我确实接受了兴奋,是的,需要在你的答案中使用'和',但这正是我一直在寻找的!它确实选择了我需要它的方式,但它只会选择1行,通常是歌曲列表中的第一个,如果我能弄清楚它,那就太棒了! –