0

这有点像脑筋急转弯,我一直在思考如何去做。不确定标题是否足够,但这是我能做的最好的。

我目前正在开发的站点中有一个集中的音频播放系统。集中式是指网站上的所有内容都通过它播放,因此一次只能播放一首曲目,并且还可以进行连续播放。

在我详细介绍玩家之前,我应该解释一下网站的某些部分。该网站为音乐家提供音乐和其他内容。音乐家被用户投票选入网站。要投票,用户将点击投票,听曲目并点击喜欢或不喜欢,简单!一旦曲目获得足够的赞,曲目的创建者将成为该网站的一部分,并将能够将更多曲目上传到该网站的个人资料以及其他内容。这应该可以解释网站的这一部分是关于什么的,这样我就可以详细介绍玩家了。

有 2 个播放器,一个在工具栏中,一个在页面中,可以有几个,有点像 soundcloud 的播放器。一切都链接在一起,因此如果在页内播放器上播放曲目,它会在工具栏播放器中播放,反之亦然。

音频播放器是用 jQuery 构建的。

用户还可以做 3 件事来触发音频播放;

  1. 播放工具栏播放器中显示的最新曲目。
  2. 在页内播放器中播放曲目。
  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 中。

我将如何选择正确的查询以使正确的事情发生?或者至少选择正确的查询结果?

很抱歉这个问题有点啰嗦,但我需要解释几乎每一个细节。

4

1 回答 1

0

我已经整理好了。我最终在我的 javascript 中使用了几个 AJAX 请求,所以它很冗长。每个查询都有一个 AJAX 请求,每个查询都在一个单独的文件中,并且 url 被回显。然后将 url 发送回播放歌曲的 javascript。同时,该 url 被发送到其中一个播放器,在该播放器中进行更多的 sql 查询,并检索正确的信息并为正确的轨道回显。当我掌握了 jQuery 中的 AJAX 函数时,它既简单又合乎逻辑。

于 2012-08-17T21:20:15.457 回答