나는 근무일 (월요일부터 일요일)이 근무하는 날과없는 날을 저장하는 데이터베이스 테이블을 가지고 있습니다. 이 표에는 2 가지 속성 인 "day"(월요일부터 일요일까지 1, 2, 3, 4, 5, 6, 7)과 "working"이 포함됩니다. 나는 '0'과 '1'을 사용하여 근무일인지 아닌지를 표시하고, '1'은 비 근무일임을 나타냅니다. 금요일, 토요일, 일요일에 데이터베이스가 휴무 (5, 6, 7)가되도록 설정했습니다.while 루프는 한 번만 실행되지만 한 번만 실행됩니다.
$addrange = $annstart;
$minusday = 0; //numbers of nonworking days
$resultnonworking = mysql_query("SELECT dayid FROM workingdays WHERE working='1'");
while ($nonworking = mysql_fetch_array($resultnonworking))
{
while ($datediffdays > 1)
{
$addrange = date('Y-m-d', strtotime($addrange . ' + 1 day'));
$daycheck = date('N', strtotime($addrange));
if ($daycheck == $nonworking['dayid'])
{
$minusday = ++$minusday;
}
$datediffdays = --$datediffdays;
}
$startdaycheck = date('N', strtotime($annstart));
if ($nonworking['dayid'] == $startdaycheck)
$minusday = ++$minusday;
}
그러나 내 while 루프는 한 번만 실행되며 어느 날짜가 금요일인지, 토요일과 일요일은 제외되는지 확인합니다.
누군가 내 코드에 무엇이 잘못 되었습니까? 미리 감사드립니다.
$ datediffdays는 어디에 정의되어 있습니까? – cornelb
실제로 달성하고자하는이 코드는 무엇입니까? 비 근무 일수를 계산하려고합니까? 당신은 MySQL 쿼리에서'COUNT'를 사용할 수 있습니다. – SamV
@cornelb 붙여 넣지 않은 코드의 상단 부분에 정의되어 있습니다. –