这是一个脑筋急转弯,我一直试图想一想如何做到这一点。不确定标题是否足够,但它是我能做的最好的。
我现在正在开发的网站中有一个集中的音频播放系统。通过集中化,我的意思是网站上的所有内容都可以播放,因此一次只能播放一首曲目,这也可以让连续播放变得可行。
在我详细介绍玩家之前,我应该解释一下网站的部分内容。该网站为音乐家提供音乐和其他东西。音乐家被用户投票选为网站。投票用户将点击投票,听取曲目并点击喜欢或不喜欢,简单!一旦轨道有足够的喜欢,轨道的创建者将成为网站的一部分,并将能够上传更多的轨道到该配置文件以及其他东西。这应该解释网站的这一部分是什么,所以我可以详细了解玩家。
有2个玩家,一个位于工具栏中,另一个位于第一页,其中有几个类似于soundcloud的玩家。所有东西都链接在一起,所以如果在内置播放器上播放曲目,它将在工具栏播放器中播放,反之亦然。
音频播放器是用jQuery构建的。
用户还可以做三件事来触发音频播放;
现在我遇到的问题是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如何为正确的事情选择正确的查询?或者至少选择正确的查询结果?
对不起,这个问题有点冗长,但我需要解释几乎每一个细节。
答案 0 :(得分:0)
我已经对它进行了分类。我最终在我的javascript中使用了几个AJAX请求,所以它很长。每个查询都有一个AJAX请求,每个查询都在一个单独的文件中,并且url被回显。然后将URL发送回播放歌曲的javascript。同时,url被发送给其中一个玩家,其中更多的sql查询是maded,并且检索正确的信息并回显正确的轨道。当我在jQuery中掌握AJAX函数时,它简单而合乎逻辑。