【发布时间】:2018-07-22 18:29:06
【问题描述】:
我正在处理一个只显示即将发生的事件的 MySQL 查询。但是我每次都会出现一个空白屏幕并显示在过去的事件列表中。
今天 = 2018 年 7 月 22 日,
即将举行的活动日期 (eventID) = 2018 年 7 月 29 日
我的查询是:
SELECT * FROM event WHERE eventDate > CURDATE() ORDER BY STR_TO_DATE(eventDate,'%d %F %Y')
PHP 代码(无 css):
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_assoc($result)) { ?>
<?php echo $row['eventName'] . "<br/>" ?>
<?php echo $row["eventDate"] . "<br/><br/>" ?>
<?php } ?>
数据库表:
eventID int(11) AUTO_INCREMENT
eventName varchar(255)
eventDate varchar(255)
我已经尝试过 CURRENT_DATE() 、 NOW() 和 >=
正如我在过去的列表中告诉我即将举行的活动节目,以及所有其他活动。 eventDate < CURDATE()
【问题讨论】:
-
您的 SQL 建议事件日期是字符串而不是日期列。你的错误日志是什么?你的 PHP 是什么?
-
投票认为这是一个错字,Martin 关于您最有可能存储为 DATE 类型以外的任何内容是正确的,您应该并且会帮助您很多并且不会让您扯掉头发,因为它是。
-
@FunkFortyNiner 最近对开发人员的一项研究发现,使用 MySQL / PHP 的人秃顶的可能性增加了 23%。我想你刚刚找到了原因!
-
@Martin 请看我的 php 代码。