2013-05-03 148 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