2013-05-03 141 views
0

後未定義的變量我做了一個播放列表(PHP,MySQL和HTML5)檢查如果結果是sql查詢

它正常工作的音頻播放器。

當一首曲目完成時,播放器會自動加載(使用ajax)下一首曲目。

所以我有一個SQL查詢知道下一個曲目ID(曲目列表按日期排序)。

沒關係,但是當播放器讀取最後一個音軌時,sql查詢找不到下一個id(因爲它不存在,所以沒有跟蹤日期的音軌)。

所以我想這樣做:檢查我的結果是否爲空,如果它是空的,我定義我的VAR與第一個ID。 但它不起作用。我總是有一個未定義的變量。

我已經與 isset,空嘗試,is_null

這裏是我的代碼:

$next_id = $bdd->prepare(' 
SELECT id 
FROM site_decouvrir 
WHERE publish = 1 AND date_publication < :date_publication 
ORDER BY date_publication DESC LIMIT 1'); 

$next_id->execute(array('date_publication' => $date_publication)); 

while ($donnees_2 = $next_id->fetch()) 
{ 
    // This part is ok untill i reach the last track 
    if (isset($donnees_2['id'])) { 
     $id_next_track = $donnees_2['id']; 
    } else { 
     // This part is not executed, when $donnees_2['id'] is null 
     $id_next_track = $id_premier_morceau; 
    } 
} 

你能給我一些建議?

回答

1

您的while循環將處理該問題。雖然語句$donnees_2 = $next_id->fetch()爲真,但在查詢成功時循環運行。因此將會有一個id參數,你的if語句將被執行。

當語句失敗時,while循環退出並且您的else塊永遠不會執行。

如果你想設置參數在while循環後做它

+0

這麼簡單,謝謝你的幫助。 – 2013-05-06 14:19:00