我正在研究一个大学数据库,该数据库将不断更新新课程。
通常,学生确实会在同一日期学习课程,但是我已经注意到某些条目的将来日期,因此我正在考虑运行一个sql查询,该查询将分析特定的列,并且发现超过2个条目将来的日期(从当前日期开始,以YYYY-MM-DD的格式为+1),则应使用php mail寄给我,否则,它将回显未找到任何未来的课程。
我认为可以在SQL查询的帮助下将其集成到我的PHP代码中,但是我不确定如何做到这一点,因此将不胜感激。
我想知道我当前的方法是否正确:
$sql = "SELECT publisheddate FROM lessons WHERE CONVERT(char(10), GetDate() +1,126);
$result = $conn->query($sql);
if ($result->num_rows < 2) {
echo "2 new lessons for tomorrow";
}
} else {
echo "0 future lessons";
答案 0 :(得分:0)
您的where
子句需要指出将转换日期与哪个列进行比较。此外,您最好从数据库中返回count(*)
行,而不是将所有行都返回到PHP脚本并由PHP对其进行计数。如果明天碰巧有一百万堂课(或者学校意外地在数据库中重复了一百万堂课……),您的脚本将不得不等待通过网络接收一百万行,而不是一个整数
尝试这样的SQL语句(您已经指出publisheddate
是date
数据类型,所以我不会费心将其转换为日期):
SELECT
count(*)
FROM
lessons
WHERE
publisheddate = DATE_ADD(CURDATE(), INTERVAL +1 DAY)
这将返回一个符合条件的整数,您的PHP脚本可以使用该条件。