일주일마다 다른 값 저장방법

일주일마다 다른 값 저장방법

QA

일주일마다 다른 값 저장방법

본문

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 && <==이런 코드들도 이상한 것이

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

 

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 128,510 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT