我有一个名为Holidays
的数据库,它有一个日期字段以保存节假日日期,名为STARTTIME
,以及一个持续时间字段以节省多少天假期叫做DURATION
。我想从一些年份和月份之间的表收集的所有数据,并通过1PHP打印每个日期的数据库中的日期数据
对于示例打印日期1,这是我的数据在数据库:
STARTTIME | DURATION
2016-12-09 | 1
2016-12-15 | 5
如何打印在PHP 1每日约1?因此,这将导致:
2016-12-09
2016-12-15
2016-12-16
2016-12-17
2016-12-18
2016-12-19
2016-12-20
我的代码现在是这样的:
//startDate and endDate is get from my filter, this is only for example
$startDate = '2016-01-01';
$endDate = '2016-01-31';
$sqlHol = "SELECT STARTTIME, DURATION FROM HOLIDAYS WHERE DATEVALUE(STARTTIME) BETWEEN DateAdd('m',-1,#$startDate#) AND #$endDate#";
$queryHol = $db->query($sqlHol);
$hols = $queryHol->fetchAll();
echo '<br />';
//testing to print out array result
print_r($hols);
//looping through data from database
foreach($hols as $hol)
{
for($i=1; $i <= $hol[1]; $i++)
{
echo '<br />';
$due = date_create($hol[0]);
echo date_format($due, 'Y-m-d');
$due = date_add(date_create($hol[0]), date_interval_create_from_date_string('1 days'));
echo '<br />';
}
}
这是我的结果(日期不增加):
2015-12-09
2015-12-15
2015-12-15
2015-12-15
2015-12-15
2015-12-15
2015-12-15
任何人都知道如何创建一个像我需要的输出?
您的for循环中有两个'
'标签,请尝试删除第一个标签。 – lampwins
也不要养成这样执行查询的习惯,这是不安全的。搜索PDO。 – lampwins
@lampwins抱歉,它只是为了进入...问题是我的日期不计数...因为你总是可以看到它15 ...我不能使用PDO,我不知道为什么如果我使用ms.access我不能使用PDO ...并且这个应用只用于一个人,所以我没有真正考虑过安全... –