2012-08-15 59 views
0

這是一個腦筋急轉彎,我一直在想如何做一段時間。不確定標題是否足夠,但這是我能做的最好的。從mysql獲取數據取決於用戶做了什麼

我在我目前正在開發的網站中有一個集中的音頻播放系統。通過集中,我意味着網站上的所有內容都通過它進行播放,因此只能一次播放一首曲目,並且還可以連續播放。

在我詳細介紹球員之前,我應該解釋部分網站。該網站爲音樂家提供音樂和其他東西。這些音樂家被用戶投票在網站上。投票用戶將點擊投票,聽聽曲目並點擊喜歡或不喜歡,簡單!一旦軌道足夠喜歡軌道的創建者將成爲該網站的一部分,並將能夠上傳更多軌道到那裏配置文件以及其他東西。這應該解釋網站的這一部分是關於什麼的,所以我可以詳細介紹這些球員。

有兩個玩家,一個在工具欄中,另一個在第一個可以有幾個像soundcloud的玩家。所有東西都鏈接在一起,所以如果在播放器上播放曲目,它會在工具欄播放器中播放,反之亦然。

音頻播放器是用jQuery構建的。

用戶還可以通過3件事來觸發音頻播放;

  1. 播放顯示在工具欄播放器中的最新曲目。
  2. 在頁面播放器中播放曲目。
  3. 點擊投票並聽取隨機曲目進行投票。

現在我遇到的問題是與MySQL查詢以及如何選擇它們。因爲用戶可以發送的3個觸發器中的每一個都需要不同的mysql查詢,所以我需要考慮爲每個觸發器選擇查詢的方法。

在下面的查詢中,我省略了變量和基於所選軌道獲取有關藝術家信息的查詢。

Query for 1(toolbar player);

$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中。

我該如何選擇正確的查詢來發生正確的事情?或者至少選擇正確的查詢結果?

我很抱歉,這個問題有點長,但我需要解釋幾乎每一個細節。

+1

它可能無助於回答你的問題,但你應該停止使用'mysql_ *'函數。他們正在被棄用。請使用[PDO](http://php.net/manual/en/book.pdo.php)(自PHP 5.1起支持)或[mysqli](http://php.net/manual/en/book)。 mysqli.php)(自PHP 4.1起支持)。如果你不確定使用哪一個,[閱讀本文](http://net.tutsplus.com/tutorials/php/pdo-vs-mysqli-which-should-you-use/)。 – Matt 2012-08-15 20:59:35

+0

你的意思是使用'$ _GET'變量,還是調用不同的頁面? – 2012-08-15 21:00:06

+0

是的,我知道,我正在改變,但我有一些其他人在這個項目上工作,我們都需要了解他們。 – 2012-08-15 21:00:37

回答

0

我已經整理了它。我已經結束了在我的JavaScript中使用幾個AJAX請求,所以它是相當長的囉嗦。每個查詢都有一個AJAX請求,每個查詢都在一個單獨的文件中,並且URL被回顯出來。然後將該url發送回播放該歌曲的JavaScript。同時,url被髮送給其中一個玩家,其中更多的sql查詢被修改,並且正確的信息被檢索並且響應正確的軌道。當我在jQuery中獲得AJAX函數的時候,這很簡單和合乎邏輯。