检查如果结果是sql查询
问题描述:
后未定义的变量我做了一个播放列表(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;
}
}
你能给我一些建议?
答
您的while循环将处理该问题。虽然语句$donnees_2 = $next_id->fetch()
为真,但在查询成功时循环运行。因此将会有一个id
参数,你的if语句将被执行。
当语句失败时,while循环退出并且您的else
块永远不会执行。
如果你想设置参数在while循环后做它
这么简单,谢谢你的帮助。 – 2013-05-06 14:19:00