2015-08-21 34 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行,通常是歌曲列表中的第一個,如果我能弄清楚它,那就太棒了! –