我正在尝试创建唯一的播放列表。关于我的数据库结构是......
aid (albumid) | sid (songid) | rid (artistid)
_________________|____________________|___________________
5001 | track-a | a
5002 | track-a | c
5001 | track-a | a:b
5001 | track-a | b
5001 | track-a | b:c
5001 | track-b | b
5001 | track-b | b:a
就像这张5001号专辑可能有任意数量的歌曲,名称sid为track-1,但每次都是独特的艺术家,如艺术家a,b,c演唱,如果它是由二重唱演唱而不是我将它与:
区分开来,这些艺术家组合也曾唱过这个。现在在插入时我希望检查组合是否已经存在。我的PHP代码是
$track is array of track
$artist is array of artist (for artist combination array value may have ":", I have taken it as string.)
//SELECT QUERY FOR ALBUM
if (mysql_num_rows($sql) != 0) {
while ($row = mysql_fetch_assoc($sql)) {
$album_array[] = array( $row["sid"], $row["rid"]);
}
for ($z = 0; $z < count($track); $z++) {
if( in_array($track["z"],$album_array[0]) && empty(array_diff(explode(":",$album_array[1]), explode(":",$artist["z"]) )) ){
echo 'true';
} else {
echo 'false';
}
}
} else {
//SIMPLE INSERT CODE HERE
}
组合
track-a | a
track-a | b
track-a | b:a
track-a | a:c
它应该归还我
-TRUE
-TRUE
-TRUE
-FALSE
但每次都让我失意。请帮帮我。
答案 0 :(得分:0)
$track["z"] and $artist["z"]
应该是
$track[$z] and $artist[$z]
您只是检查第一个数组$album_array[0]
。只有一个退回吗?