我在我的应用程序中有一个窗体。此表格由2个textfields type ='date'组成。现在,当给出两个日期时,这些日期被发送到一个PHP脚本,该脚本使用strtotime来转换日期。PHP循环通过数组和检查日期
PHP脚本连接到一个mySQL数据库,该数据库返回带请求的结果。我想遍历所有请求,并检查请求的日期是否在表单发送的两个日期之间。
现在会发生什么:
$sql = "SELECT * FROM Requests";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
if($result) {
foreach ($result as $row){
$return[]=array('employeeid'=>$row['employeeid']
'id'=>$row['id'],
'startdate'=>$row['startdate'],
'enddate'=>$row['enddate'],
'type'=>$row['type'],
'reason'=>$row['reason']);
}
header('Content-type: application/json');
echo '' . json_encode($return) .'';
return true;
} else {
return false;
}
上面的代码生成一个完美的JSON文件与要求。但正如我所提到的,我想检查上述请求的开始日期是否在表单发送的两个日期之间。
事情是这样的:
if (($request_startdate >= $startdate) && ($request_startdate <= $enddate)) {
//generate array with the requests
} else {
//no requests between dates.
}
但如何遍历请求,并检查开始日期?
在此先感谢。
月
不这样做的是,使用该数据库,那到底是什么它用于:'SELECT * FROM Requests WHERE startdate <?和enddate>?(你需要包含实际变量的正确语法) – Steve 2015-01-15 15:11:01
你已经使用你的foreach循环处理了数据库结果 - 这样你就可以完成你在循环中列出的检查。然而,正如史蒂夫所说,在你的SELECT语句中这样做通常会更有意义。否则,您将在每次处理表单时提取数据库中的每条记录。 – 2015-01-15 15:14:18