比较我的数据库数据与特定日期

时间:2016-08-07 09:51:44

标签: php html mysql database date

我的数据库数据是日期表。我想创建一个列表来报告过期日期的条目。 My Database

为此,我使用了以下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;

我无法弄清楚这意味着什么或如何解决它。我之前就是这种方法,这是我第一次遇到这样的错误。

1 个答案:

答案 0 :(得分:1)

在比较日期时,您必须注意两个日期的格式相同(日期字符串或时间戳)。为了比较,格式为时间戳是最好的。因此,使用PHP函数timestamp()只需将数据库时间转换为唯一的数字。

您的比较:

if($Date1 >= $now){
....
}

此处$Date1是类似'2016-07-07'的字符串,$now类似于'1468057029',因此条件不正确/成功。你要做的就是将时间转换为时间戳并执行比较。

$Date1 = strtotime($row["Date1"]);
$Date2 = strtotime($row["Date2"]);

希望这有助于你。