我有一个 mysql 查询
$raw_resultsplaylists = mysql_query("SELECT songs.*, playlists.title as `playlist_title`
FROM song_main AS songs
JOIN songs_in_list AS playlist_songs
ON songs.ID = playlist_songs.song_id
JOIN playlists
ON playlist_songs.playlist_id = playlists.ID
WHERE playlists.owner_id = '$userid'") or die(mysql_error());
检索如下信息数组:
playlist_title song_name song_url song_artist
-------------------------------------------------------------------
foo1 woops www. -
foo1 blah www. -
foo2 blop www. -
foo1 woop www. -
foo3 bob www. -
foo1 dylan www. -
我的问题是我如何对 Mysql 数组进行切片以在单独的数组中获取具有相同playlist_title
的所有行,以便我可以将它们显示在单独的 html 表中,例如:
表 1
: playlist_title song_name song_url song_artist
-------------------------------------------------------------------
foo1 woops www. -
foo1 blah www. -
foo1 woop www. -
foo1 dylan www. -
目录 表 2
playlist_title song_name song_url song_artist
-------------------------------------------------------------------
foo2 blop www. -
foo2 dylan www. -
等。。。
只是为了画出这个想法..
do{
$groupedItems[$row['pname']][] = $row; //every row with the same pname will be "grouped" in the same array level
}while..
然后。。。
foreach($groupedItems as $group){
//bla bla
}
SQL 中没有"数组"。都是行和列。你想要的是,也许:
SELECT * FROM table_name WHERE pname='foo1'
或者也许:
SELECT * FROM table_name ORDER BY pname
您可以在应用程序中进行拆分的位置。
对于 html 表 1:
mysql_query("SELECT songs.*, playlists.title as `playlist_title`
FROM song_main AS songs
JOIN songs_in_list AS playlist_songs
ON songs.ID = playlist_songs.song_id
JOIN playlists
ON playlist_songs.playlist_id = playlists.ID
WHERE playlists.owner_id = '$userid'
AND playlist_title='foo1'") or die(mysql_error());