일주일마다 다른 값 저장방법 채택완료
은빛여전사
6개월 전
조회 1,599
very_work_list2 테이블에 in1, in2, in3, in4 컬럼이 있습니다
very_work_time 테이블에
이번주에는 in1 컬럼값을
다음주에는 in2 컬럼값을
다다음주에는 in3 컬럼값을
주말과 공휴일에는 in4 컬럼값을 저장하고
다시 그 다음주 부터는 in1부터 저장하고자 합니다..
아래 코드를 작성해서 매일매일 쿼리값을 저장해서 테스트 해봤는데
매주 변경되는게 아니라.. 계속 in1 컬럼값만 저장이 됩니다..
아래 코드중. 어떤부분에 문제가 있는지 알고 싶습니다.
</p>
<p> </p>
<p> $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]; </p>
<p> </p>
<p> $today1 = date('w');
$nextMonday = strtotime('next monday');
function is_holiday($today1) {
$holiday_codes = array(
'공공포털 코드' => '공공포털 코드'
);</p>
<p> $day_of_week = date('w', strtotime($today1));
$date_str = date('Ymd', strtotime($today1));</p>
<p> 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;
}
}
</p>
<p> if ($today1 >= 1 && $today1 <= 5) { //월~금</p>
<p>
$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'";
}</p>
<p> 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'";
} </p>
<p> </p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
6개월 전
오늘 기준의 다음주 월요일과 비교를 하면
다음주가 되어도 계속 오늘로만 저장이 됩니다.
기준일을 정하고 그 날짜를 기준으로 오늘이 몇주일 후인지 체크해서
1,2,3 으로 설정해야 할 것 같습니다.
예) 4.21 기준일과 오늘의 날짜 차이를 구해서 처리
</p>
<p>$term = (strtotime(date('Y-m-d')) - strtotime("2025-04-21")) / 86400;</p>
<p>echo $week = floor($term / 7) % 3 + 1;</p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
은빛여전사
6개월 전
뇌가 굳어서 그런가... 너무 어렵네요 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인