테스트 사이트 - 개발 중인 베타 버전입니다

일주일마다 다른 값 저장방법 채택완료

은빛여전사 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 포인트
e
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개월 전
뇌가 굳어서 그런가... 너무 어렵네요 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

6개월 전

이번주에는 in1 컬럼값을

다음주에는 in2 컬럼값을

다다음주에는 in3 컬럼값을 

<====이 설명 자체가 이상하지않은가요?

이번주에 n1값을 넣었는데 다음주가 되면 다시 이번주가 되니 또 n1값이 들어가겠죠

질문 내용을 이해를 못하겠네요

 

 if (time() >= $nextMonday && <==이런 코드들도 이상한 것이

현재 시각이 다음주 월요일 시각보다 큰 값이 나올 수가 없죠

 

 

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인