【发布时间】:2021-10-17 10:04:42
【问题描述】:
我有一个用户可以上下班打卡的网站。
我在以下标题下保存时间
ID(密钥)|日期 |天 |用户名 |开始时间 |结束时间 |总计
我的问题是每两周我需要网站通过电子邮件向我发送过去两周内我所有员工的开始和结束时间。
连接到数据库后,我尝试了这个:
$period = strtotime($row['period']);
//start = 14 days previous to current period start
$start = $period - 1209500;
if ($result->num_rows > 0 ){
//period = start of pay period
$period = strtotime($row['period']);
//start = 14 days previous to current period start
$start = $period - 1209500;
while ($start < $period){
$sql = "SELECT * FROM `clocks` WHERE ``date` = '".gmdate("d.m.Y", $start)."'";
$res = $conn->query($sql);
if ($res->num_rows > 0){
while($row = $res->fetch_assoc()) {
$line = "{$row['userid']} {$row['date']} {$row['start']} {$row['finish']} {$row['breakstart']}";
echo $line;
}
} else {
}
$start = $start + 86400;
}
我的数据库中有一些结果应该像以前看到的那样回显,但我没有任何显示。也没有错误日志。
感谢您的帮助
【问题讨论】:
-
我知道,抱歉应该更具体。如果我把 1209600 放得太远了 1 天,所以我做了 1209500 以确保它给出我需要的日期
-
你可以使用这样的查询
$start = date('d.m.Y', strtotime($row['period']. ' - 2 weeks')); $sql = "SELECT * FROM clocks WHERE date > '$start' "; -
您的 SQL 查询中有错误。你在
date之前添加了一个额外的(`)字符@