일주일마다 다른 값 저장방법
본문
very_work_list2 테이블에 in1, in2, in3, in4 컬럼이 있습니다
very_work_time 테이블에
이번주에는 in1 컬럼값을
다음주에는 in2 컬럼값을
다다음주에는 in3 컬럼값을
주말과 공휴일에는 in4 컬럼값을 저장하고
다시 그 다음주 부터는 in1부터 저장하고자 합니다..
아래 코드를 작성해서 매일매일 쿼리값을 저장해서 테스트 해봤는데
매주 변경되는게 아니라.. 계속 in1 컬럼값만 저장이 됩니다..
아래 코드중. 어떤부분에 문제가 있는지 알고 싶습니다.
$result71 = mysqli_query($conn, "SELECT in1, in2, in3, in4 FROM very_work_list2 WHERE work_id='$zzzz'");
$row = mysqli_fetch_array($result71);
$data71 = $row[0];
$data72 = $row[1];
$data73 = $row[2];
$data74 = $row[3];
$today1 = date('w');
$nextMonday = strtotime('next monday');
function is_holiday($today1) {
$holiday_codes = array(
'공공포털 코드' => '공공포털 코드'
);
$day_of_week = date('w', strtotime($today1));
$date_str = date('Ymd', strtotime($today1));
if (in_array($date_str, array_keys($holiday_codes))) {
return true;
} elseif ($day_of_week == 0 || $day_of_week == 6) {
return true;
} else {
return false;
}
}
if ($today1 >= 1 && $today1 <= 5) { //월~금
$insert_sql = "INSERT INTO very_work_time (work_id, work_name, work_group, work_intime, work_outtime, work_datetime, work_ip, work_total, dddd)
SELECT '$data61', work_name, work_group, ('$today $data71') , '', '$time', '$ip', '$zzzz', '0'
FROM very_work_list2
WHERE work_id = '$zzzz'";
} elseif ($today1 == 6 || $today1 == 0 || is_holiday($today1)) { // 토 ~ 일, 공휴일
$insert_sql = "INSERT INTO very_work_time (work_id, work_name, work_group, work_intime, work_outtime, work_datetime, work_ip, work_total, dddd)
SELECT '$data61', work_name, work_group, ('$today $data74') , '', '$time', '$ip', '$zzzz', '0'
FROM very_work_list2
WHERE work_id = '$zzzz'";
}
if (time() >= $nextMonday && time() < $nextFriday) { // 다음주 월 ~ 금
$insert_sql = "INSERT INTO very_work_time (work_id, work_name, work_group, work_intime, work_outtime, work_datetime, work_ip, work_total, dddd)
SELECT '$data61', work_name, work_group, ('$today $data72') , '', '$time', '$ip', '$zzzz', '0'
FROM very_work_list2
WHERE work_id = '$zzzz'";
} elseif (time() >= $nextMonday) { // 다음주 토 ~ 일, 공휴일
$insert_sql = "INSERT INTO very_work_time (work_id, work_name, work_group, work_intime, work_outtime, work_datetime, work_ip, work_total, dddd)
SELECT '$data61', work_name, work_group, ('$today $data74') , '', '$time', '$ip', '$zzzz', '0'
FROM work_id = '$zzzz'";
}
if (time() >= $nextMonday && time() < $nextFriday) { // 다음주 월 ~ 금
$insert_sql = "INSERT INTO very_work_time (work_id, work_name, work_group, work_intime, work_outtime, work_datetime, work_ip, work_total, dddd)
SELECT '$data61', work_name, work_group, ('$today $data73') , '', '$time', '$ip', '$zzzz', '0'
FROM very_work_list2
WHERE work_id = '$zzzz'";
} elseif (time() >= $nextMonday) { // 다음주 토 ~ 일, 공휴일
$insert_sql = "INSERT INTO very_work_time (work_id, work_name, work_group, work_intime, work_outtime, work_datetime, work_ip, work_total, dddd)
SELECT '$data61', work_name, work_group, ('$today $data74') , '', '$time', '$ip', '$zzzz', '0'
FROM very_work_list2
WHERE work_id = '$zzzz'";
}
!-->
답변 2
오늘 기준의 다음주 월요일과 비교를 하면
다음주가 되어도 계속 오늘로만 저장이 됩니다.
기준일을 정하고 그 날짜를 기준으로 오늘이 몇주일 후인지 체크해서
1,2,3 으로 설정해야 할 것 같습니다.
예) 4.21 기준일과 오늘의 날짜 차이를 구해서 처리
$term = (strtotime(date('Y-m-d')) - strtotime("2025-04-21")) / 86400;
echo $week = floor($term / 7) % 3 + 1;
이번주에는 in1 컬럼값을
다음주에는 in2 컬럼값을
다다음주에는 in3 컬럼값을
<====이 설명 자체가 이상하지않은가요?
이번주에 n1값을 넣었는데 다음주가 되면 다시 이번주가 되니 또 n1값이 들어가겠죠
질문 내용을 이해를 못하겠네요
if (time() >= $nextMonday && <==이런 코드들도 이상한 것이
현재 시각이 다음주 월요일 시각보다 큰 값이 나올 수가 없죠
답변을 작성하시기 전에 로그인 해주세요.