php - else 语句不触发 else

标签 php mysql date if-statement

我正在尝试创建一个脚本,如果日期晚于今天,它将显示 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/

相关文章:

php - Laravel 什么是使用 HasFactory?

php - 从 php 中的现有数组创建一个可用的数组

mysql - openshift 和环境变量上的持久性 xml

php - 从派生表中提取列并将它们汇总到一个 MySQL SELECT 语句中

php - Javascript/PHP 和时区

php - 循环多次写入文件或创建巨大的字符串然后写入文件?

php - 重置计算结果

SQLite 查询日期等于今天

javascript - 如何使用 momentjs 或 vanilla JS 将 ISO 日期格式转换为 yyyy-MM-dd 格式?

php - 在php中,如果整小时则减少,或者如果超过一小时则增加?