我的数据库数据是日期表。我想创建一个列表来报告过期日期的条目。
为此,我使用了以下php脚本:
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT Batch#, Date1, Date2 FROM users";
$result = $conn->query($sql);
$now= strtotime("-1 Months");
if ($result->num_rows > 0) {
$Date1= $row["Date1"];
$Date2= $row["Date2"];
echo "<table id='t1'><tr><th>Alert</th><th>Action</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
if($Date1 >= $now)
echo "<tr><td>One month or less to expiry date of product with batch# " . $row["Batch#"]. "</td><td>Please take an action</td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
我一直收到错误:&#34;注意:尝试在第17行的C:\ xampp \ htdocs \ Testing \ AlertTest.php中获取非对象的属性 0结果&#34;
我无法弄清楚这意味着什么或如何解决它。我之前就是这种方法,这是我第一次遇到这样的错误。
答案 0 :(得分:1)
在比较日期时,您必须注意两个日期的格式相同(日期字符串或时间戳)。为了比较,格式为时间戳是最好的。因此,使用PHP函数timestamp()
只需将数据库时间转换为唯一的数字。
您的比较:
if($Date1 >= $now){
....
}
此处$Date1
是类似'2016-07-07'的字符串,$now
类似于'1468057029',因此条件不正确/成功。你要做的就是将时间转换为时间戳并执行比较。
$Date1 = strtotime($row["Date1"]);
$Date2 = strtotime($row["Date2"]);
希望这有助于你。