我制作了一个带播放列表的音频播放器(php,MySql,html5)
工作正常。
当曲目结束时,播放器会自动加载(使用ajax)下一曲目。
所以我有一个SQL查询来知道下一个轨道ID(轨道列表按日期排序)。
没关系,但是当玩家读取最后一首曲目时,sql查询找不到下一个id(因为它不存在,之前没有跟踪日期的曲目)。
所以我想这样做:检查我的结果是否为空,如果它为null,我用第一个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;
}
}
你能给我一些建议吗?
答案 0 :(得分:1)
你的while循环将处理它。虽然语句$donnees_2 = $next_id->fetch()
为真,但在查询成功时,循环运行。因此,将有一个id
参数,您的if语句将被执行。
当语句失败时,while循环退出,并且永远不会执行else
块。
如果要设置参数,请在while循环后执行