我正在尝试在2个日期之间将行插入数据库。
这是我的桌子
用户将填写简短的表格,说明开始和结束日期以及第一周的值(0或1)
$Start=$_GET['Start'];
$End=$_GET['End'];
$WorkDays=$_GET['WorkDays'];
$WorkDays
是0或1(0是星期一,星期二,星期三,而1是星期四,星期五,星期六)
我可以使用以下内容插入第一周的罚款记录:
$mon=$Start;
$tue=date('Y-m-d', strtotime($Start. ' + 1 days'));
$wed=date('Y-m-d', strtotime($Start. ' + 2 days'));
$thu=date('Y-m-d', strtotime($Start. ' + 3 days'));
$fri=date('Y-m-d', strtotime($Start. ' + 4 days'));
$sat=date('Y-m-d', strtotime($Start. ' + 5 days'));
if($WorkDays==1){$monWork=1; $tueWork=1; $wedWork=1; $thuWork=0; $friWork=0; $satWork=0; }
if($WorkDays==2){$monWork=0; $tueWork=0; $wedWork=0; $thuWork=1; $friWork=1; $satWork=1; }
然后,我每天星期一至五都有插入查询。
然后,我需要相同的脚本来查看开始和结束之间的所有日期,并将其插入到同一数据库中,但是每天必须具有最后一周的相反值。
E.G
第1周:星期一= 1,星期二= 1,星期三= 1,星期四= 0,周五= 0,星期六= 0
第2周:星期一= 0,星期二= 0,星期三= 0,星期四= 1,周五= 1,星期六= 1
这是我尝试过的:
//Get the date 1 after the start date as first week already inserted
$SevenDays=date('Y-m-d', strtotime($Start. ' + 7 days'));
$startTime = strtotime( $SevenDays);
$endTime = strtotime( $End );
//Loop through each day between the start and end date
for ( $i = $startTime; $i <= $endTime; $i = $i + 86400 ) {
$given_date = date( 'Y-m-d', $i );
$given_date_day = date( 'l', $i );
//Select the same day the week before
$result1512=mysql_query("SELECT * FROM RosteredPatternHours where PatternID='$PatternID' and WorkingDate='$SevenDaysGiven'")or die('Error 84' . mysql_error());
for ($ii = 1; $ii <= mysql_num_rows($result1512); $ii++) {
$row = mysql_fetch_array($result1512);
$Day = $row ['Day'];
$Working = $row ['Working'];
//Set Working to opposite of last week
if($Working==1){$WorkingDay=0;}
if($Working==0){$WorkingDay=1;}
然后我添加我的插入查询。
这似乎只会增加一个星期,而不是从开始到结束之间的整天