这有点像脑筋急转弯,我一直在思考如何去做。不确定标题是否足够,但这是我能做的最好的。
我目前正在开发的站点中有一个集中的音频播放系统。集中式是指网站上的所有内容都通过它播放,因此一次只能播放一首曲目,并且还可以进行连续播放。
在我详细介绍玩家之前,我应该解释一下网站的某些部分。该网站为音乐家提供音乐和其他内容。音乐家被用户投票选入网站。要投票,用户将点击投票,听曲目并点击喜欢或不喜欢,简单!一旦曲目获得足够的赞,曲目的创建者将成为该网站的一部分,并将能够将更多曲目上传到该网站的个人资料以及其他内容。这应该可以解释网站的这一部分是关于什么的,这样我就可以详细介绍玩家了。
有 2 个播放器,一个在工具栏中,一个在页面中,可以有几个,有点像 soundcloud 的播放器。一切都链接在一起,因此如果在页内播放器上播放曲目,它会在工具栏播放器中播放,反之亦然。
音频播放器是用 jQuery 构建的。
用户还可以做 3 件事来触发音频播放;
- 播放工具栏播放器中显示的最新曲目。
- 在页内播放器中播放曲目。
- 单击投票并收听随机曲目进行投票。
现在我遇到的问题是mysql查询以及它们是如何选择的。因为用户可以发送的 3 个触发器中的每一个都需要不同的 mysql 查询,所以我需要想办法为每个触发器选择查询。
在下面的查询中,我省略了变量和根据所选曲目获取有关艺术家信息的查询。
查询 1(工具栏播放器);
$fetchtrack = mysql_query("SELECT * FROM tracks ORDER BY timestamp DESC LIMIT 1");
$track = mysql_fetch_array($fetchurl);
$url = $track['url'];
查询 2(在页面播放器中)
$fetchtrack = mysql_query("SELECT * FROM tracks WHERE track_ID = Variable for the selected track");
$track = mysql_fetch_array($fetchurl);
$url = $track['url'];
查询3(投票)
//Set up artist query so no artists are shown and cannot be voted on
$findartist = mysql_query("SELECT * FROM artists");
$artist = mysql_fetch_array($findartist);
$artist = $artist['name'];
//Set up vote query so that you are not shown a track you have already voted on
$findvoted = mysql_query ("SELECT * FROM votes WHERE ID = '$user_ID'");
$voted = mysql_fetch_array($findvoted);
$votedID = $voted['track_ID'];
//Query tracks with relevent information
$fetchtrack = mysql_query("SELECT * FROM tracks WHERE ID != '$user_ID' AND track_ID != '$votedID' LIMIT 1");
$track = mysql_fetch_array($fetchtrack);
$url = $track['url'];
哦,它可以帮助您了解投票系统、工具栏播放器和页面播放器都在单独的文件中,并且都链接到 jQuery 的单个 js 文件。$url 变量作为 var 放入 jQuery 中。
我将如何选择正确的查询以使正确的事情发生?或者至少选择正确的查询结果?
很抱歉这个问题有点啰嗦,但我需要解释几乎每一个细节。