在我的网站上,我制作了一个自动发票系统。它将从特定月份为特定用户生成发票。您可以选择用户、月份和年份,然后单击生成。
但是,在我的 MYSQL 数据库中,我用 Unix 时间戳存储了用户订购的产品日期。现在我想通过检查 Unix 时间戳是否匹配来加载某个月的所有产品。但它不会起作用。
我的代码:
require "connect.php";
$create_by=$_GET['user'];
$jaar=$_GET['jaar'];
$maand=$_GET['maand'];
$number = cal_days_in_month(CAL_GREGORIAN, $maand, $jaar);
$result = mysql_query("SELECT *
FROM `mrbs_entry`
WHERE start_time >= UNIX_TIMESTAMP(".$jaar."-".$maand."-01)
AND start_time <= UNIX_TIMESTAMP(".$jaar."-".$maand."-".$number.")
AND create_by = '".$create_by".'
ORDER BY `start_time`, `room_id`");
日期通过链接给出,如用户、maand、jaar。
maand 是月份,jaar 是年份。
最佳答案
你没有在查询中引用你的日期值,所以你正在构建
... WHERE start_time >= UNIX_TIMESTAMP(2016-01-15)
这不是日期值,它是双重数学减法,您实际上正在执行 UNIX_TIMESTAMP(2000)
,这可以追溯到 1970 年。
WHERE start_time >= UNIX_TIMESTAMP('".$jaar."-".$maand."-01')
^-----------------------^
注意指示的引号。还要注意,您对 sql injection attacks 持开放态度, 所以享受你的服务器 pwn3d。
关于php - 来自数据库的 Unix_Timestamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34813136/