0

我制作了一个带有播放列表的音频播放器(php、MySql、html5)

它工作正常。

当一首曲目完成时,播放器会自动加载(使用 ajax)下一首曲目。

所以我有一个 sql 查询来知道下一个曲目 ID(曲目列表按日期排序)。

没关系,但是当播放器读取最后一首曲目时,sql查询找不到下一个id(因为不存在,所以没有之前日期的曲目)。

所以我想这样做:检查我的结果是否不为空,如果为空,我用第一个 id 定义了我的 var。但它不起作用。我总是有一个未定义的变量。

我试过 isset,empty,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;
    }
}

你能给我一些建议吗?

4

1 回答 1

1

您的 while 循环将处理该问题。当语句$donnees_2 = $next_id->fetch()为真时,如查询成功时循环运行。因此会有一个id参数,你的 if 语句将被执行。

当语句失败时,while 循环退出并且您的else块永远不会执行。

如果要设置参数,请在 while 循环之后执行

于 2013-05-03T15:36:19.973 回答