我正在尝试创建一个脚本,如果日期晚于今天,它将显示 MySQL 表中的一个项目。
$query = $dbc->query("SELECT event_id, name, location, image, DATE_FORMAT(Date, '%d-%b-%Y') AS Date, Date as FormatDate
FROM events
ORDER BY FormatDate ASC
");
$results = $query->setFetchMode(PDO::FETCH_ASSOC);
while($row = $query->fetch()){
$name = $row['name'];
$image = $row['image'];
$location = $row['location'];
$Date = $row['Date'];
$Date = strtotime($Date);
$Date = date('d-M-Y', $Date);
$Data = explode("-", $Date);
if (strtotime($Date) >= time()){
$page->body("
<div class=\"event\">test
<img src=\"$image\" alt=\"$name\" class=\"event_image\"/>
<p class=\"event_title\">$name</p>
<p class=\"event_location\">$location</p>
<p class=\"event_time\">$Data[0] $Data[1] $Data[2]</p>
</div>
");
}else{
$page->body ("
<!-- alrge grey text 100% span -->
<div class=\"event\">
<p>There are currently no events happening.</p>
</div>
");
}
}
}
当我将一个日期晚于今天的事件添加到表中时,它添加成功并且脚本运行并且我可以在页面上看到事件打印出来,因为日期大于 time()。
但如果我清除所有事件的 MySql 表,那么它不会带回 else 语句“当前没有事件发生”。
如果表中没有晚于今天的内容,为什么 else 语句不带回失败的通知让我很困惑。
非常感谢任何帮助。
最佳答案
But if I clear the MySql table of all events then it doesn't bring back the else statement "There are currently no events happening".
while
语句只有在有行要处理时才会执行。由于您已经清除了表,因此它永远不会进入 while
循环,并且永远不会遇到 else
分支。
关于php - else 语句不触发 else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28380590/