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

날짜종료후 이동 문의 드립니다. 채택완료

주퍼 2년 전 조회 2,486

A게시판에서요 이벤트 시작때 날짜설정 -> 날짜 종료되면-> B게시판 이동

 

이런형태로 소스를 구해서 편집하고  공부하고 있습니다.

 

날짜 종료 까지는 되어서 이동하려고 하는데 어떤 방법이 좋을까 합니다.

 

여분필드로 업데이트파일에 wr_1 이용해서 보내는 방법이 낳을 듯한데요. 

 

    $start_datetime  = substr($po['po_datetime'],0,10);     $end_datetime  = substr($po['po_endtime'],0,10);     $today_datetime = date('Y-m-d');

 

이렇게 해서

                 0){                         $bcolor = "color";                 ?>                     

                    이벤트중                                      
                    이벤트끝                  이벤트 기간 :

 

여기에 이벤트 끝값에 여분필드를 사용해야될듯한데요.

아니면 ->  $end_datetime  = substr($po['po_endtime'],0,10); 이걸 이용해서 할수가 있는지요??

날짜설정후 이벤트시작후 설정된 날짜가 종료가 되면 B게시판 으로 이동.

여기에 작성후 write.skin.php / write_update.head.skin.php 여기에 여분필드값과 B게시판명 넣고

하면 될듯한데요.. 코드과 영 발코딩이라 어떻게 해야될지 시작부터 걱정이네요.

소스 방법을 알려주시면 감사하겠습니다.

 

 

 

 

 

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

답변 5개

채택된 답변
+20 포인트

예를 들어서 아래와 같이 해 볼 수 있을것 같습니다.

 

</p>

<p><?php

// 이벤트 시작일과 종료일을 설정합니다.

$start_datetime = "2023-07-01";

$end_datetime = "2023-07-15";</p>

<p>$today_datetime = date("Y-m-d"); // 현재 날짜를 가져옴.</p>

<p>$dateDiff = intval((strtotime($end_datetime) - strtotime($today_datetime)) / 86400);</p>

<p>if ($dateDiff > 0) {

    $bcolor = "color";

    $boardID = 1; // 이동할 게시판의 ID를 지정함.

    $eventStatus = "이벤트중";

} else {

    $bcolor = "gray";

    $boardID = 2; // 이벤트 종료 후 이동할 게시판의 ID를 지정함.

    $eventStatus = "이벤트끝";

    

    // 이동할 게시판으로 이동시키는 코드를 추가합니다.

    $moveURL = "/bbs/board.php?bo_table=" . $boardID; // 이동할 게시판의 URL을 생성.

    echo "<script>window.location.href = '{$moveURL}';</script>"; // JavaScript를 사용하여 이동.

}

?></p>

<p><div class="date-item bg-<?php echo $bcolor; ?>">

    <span class="date" style="font-size:20px;"><?php echo $eventStatus; ?></span>

</div></p>

<p>이벤트 기간: <?php echo $start_datetime . ' - ' . $end_datetime; ?>

 

$start_datetime과 $end_datetime 변수를 이벤트의 실제 시작일과 종료일로 설정하고, $boardID 변수를 이동할 게시판의 ID로 수정후 적용하면 이벤트 종료 후 $boardID에 지정된 게시판으로 자동으로 이동하게 할 수 있을 것 같습니다.

 

참고하셔서 원하시는 로직으로 구현 하시면 될 것 같습니다.

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

답변에 대한 댓글 1개

주퍼
2년 전
네. 자세한 설명 감사합니다. 이글을 지금확인했습니다. 어제 남겨주신 방법으로 안되서 다시 글을 남겨두고 지금 여기글 확인했습니다. 알려주신데로 적용을 해보겠습니다.

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

다음과 같이 수정해 보세요

</p>

<p>if (G5_TIME_YMD != $board['bo_1']) {

    // 이미 종료 처리된 것은 필요 없으니 가져오지 않음

    $sql = "SELECT wr_id, ca_name, start_datetime, end_datetime FROM {$write_table} WHERE wr_is_comment = 0 AND start_datetime <> '' AND end_datetime <> '' AND ca_name <> '종료' ORDER BY wr_id";

    $result = sql_query($sql);

    for ($i = 0; $row = sql_fetch_array($result); $i++) {

        $start_date = substr($row['start_datetime'], 0, 10); // 시작일자

        $end_date = substr($row['end_datetime'], 0, 10); // 종료일자</p>

<p>        $new_ca_name = '';

        if ($end_date < G5_TIME_YMD) {

            $new_ca_name = '종료';

        }</p>

<p>        if ($new_ca_name) {

            if ($new_ca_name == $row['ca_name']) continue; // 그냥 통과</p>

<p>            sql_query("UPDATE {$write_table} SET ca_name = '{$new_ca_name}' WHERE wr_id = '{$row['wr_id']}'");</p>

<p>            // 종료 카테고리로 이동하는 코드 추가

            $move_category = '종료카테고리아이디'; // 이동할 카테고리 아이디로 변경해야 함

            sql_query("UPDATE {$write_table} SET ca_name = '{$move_category}' WHERE wr_id = '{$row['wr_id']}'");

        }

    }</p>

<p>    sql_query("UPDATE {$g5['board_table']} SET bo_1_subj = '카테고리업데이트', bo_1 = '" . G5_TIME_YMD . "' WHERE bo_table = '$bo_table'");

}

?></p>

<p>

 

출력 부분에서 이벤트기간 : 이렇게 작성하시면 될것 같습니다.

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

답변에 대한 댓글 3개

주퍼
2년 전
네 신경써주셔서 감샇합니다. 뭔가 잘 안되네요. 글쓰기 페이지에 -> <?php echo $start_datetime.' - '.$end_datetime; ?> 이걸로 적용하고 위에 코드는 원본 코드위치에 해도 잘안됩니다. ㅎ
게시판에 게시글 날짜를 어제 날짜로 수정해서 테스트 해봤는데요. 날짜 값이 지난글이기에 종료로 이동되는게 맞는듯한데요. 꼼짝도 안합니다...
웹메이킹
2년 전
이렇게 하시면 기간이 지난 이벤트들은 종료 카테고리로 이동하게 할 수 있을것 같습니다
[code]
// 이벤트 기간이 지난 이벤트를 가져와서 처리
$sql = "SELECT wr_id, ca_name, start_datetime, end_datetime FROM {$write_table} WHERE wr_is_comment = 0 AND start_datetime <> '' AND end_datetime <> '' AND ca_name <> '종료' AND end_datetime < NOW() ORDER BY wr_id";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
$wr_id = $row['wr_id'];
$move_category = '종료카테고리아이디'; // 이동할 카테고리 아이디로 변경해야 함

// 종료 카테고리로 이동하는 코드 추가
sql_query("UPDATE {$write_table} SET ca_name = '{$move_category}' WHERE wr_id = '{$wr_id}'");
}
?>
[/code]

직접 테스트를 할 수 있는 자료가 없으니 쿼리문으로만 추정해서 작성해 볼 수 밖에 없네요
주퍼
2년 전
네. 감사합니다. 다시 꼼꼼하게 확인해보겠습니다. 신경써 주셔서 너무나 감사합니다.^^

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

2년 전

if (!function_exists('conv_rich_content')) {     function conv_rich_content($matches){         global $view;         return view_image($view, $matches[1], $matches[2]);     } }

if($board['as_code']) {     apms_script('code'); }

$is_notice_list = false; //공지제외☆★

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 add_stylesheet('', 0); add_javascript(''," target="_blank" rel="noopener noreferrer">https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.1/modernizr.min.js">', 0); add_stylesheet('', 0);

// 이미지 비율 $thumb_w = $board['bo_'.MOBILE_.'gallery_width']; $thumb_h = $board['bo_'.MOBILE_.'gallery_height']; $img_h = apms_img_height($thumb_w, $thumb_h); // 이미지 높이

// 너비 $item_w = apms_img_width($board['bo_gallery_cols']);

// 간격 $gap_right = ($boset['gap_r'] == "") ? 15 : $boset['gap_r']; $gap_bottom = ($boset['gap_b'] == "") ? 30 : $boset['gap_b'];

$ellipsis = (G5_IS_MOBILE) ? '' : ' class="ellipsis"'; $ellipsis = ($thumb_h > 0) ? $ellipsis : ''; $list_cnt = count($list);

if (G5_TIME_YMD != $board['bo_1']) {

    // 이미 종료 처리된 것은 필요 없으니 가져오지 않음     $sql = "SELECT wr_id, ca_name, start_datetime, end_datetime FROM {$write_table} WHERE wr_is_comment = 0 AND start_datetime <> '' AND end_datetime <> '' AND ca_name <> '종료' ORDER BY wr_id";     $result = sql_query($sql);     for ($i = 0; $row = sql_fetch_array($result); $i++) {

        $start_date = substr($row['start_datetime'], 0, 10); // 시작일자         $end_date = substr($row['end_datetime'], 0, 10); // 종료일자

        $new_ca_name = '';         if ($end_date < G5_TIME_YMD) {             $new_ca_name = '종료';         }

        if ($new_ca_name) {             if ($new_ca_name == $row['ca_name']) continue; // 그냥 통과

            sql_query("UPDATE {$write_table} SET ca_name = '{$new_ca_name}' WHERE wr_id = '{$row['wr_id']}'");         }     }

    sql_query("UPDATE {$g5['board_table']} SET bo_1_subj = '카테고리업데이트', bo_1 = '" . G5_TIME_YMD . "' WHERE bo_table = '$bo_table'"); } ?>

// 신고 $is_shingo = ($board['as_shingo'] > 0) ? true : false;

$item_font = (G5_IS_MOBILE) ? '' : ' font-12'; ?>

    if($list[$i]['is_notice']) continue;

    // 글내용 변수로 치환     $view = $list[$i];

    // list 지우기     unset($list[$i]);

    $is_lock = false;     $is_closed = false;     if ($view['icon_secret'] || $view['is_lock']) {         if($is_admin || ($view['mb_id'] && $view['mb_id'] == $member['mb_id'])) {             ;         } else {             $is_closed = true;             $view['wr_content'] = ($view['is_lock']) ? '잠긴글입니다' : '비밀글입니다.';         }         $is_lock = true;     }

    // 세션          $ss_name = 'ss_view_'.$bo_table.'_'.$view['wr_id'];     if (!get_session($ss_name)) {         sql_query(" update {$write_table} set wr_hit = wr_hit + 1 where wr_id = '{$view['wr_id']}' ");         sql_query(" update {$g5['board_new_table']} set as_hit = as_hit + 1 where bo_table = '{$bo_table}' and wr_id = '{$view['wr_id']}' ", false);         set_session($ss_name, TRUE);     }

    // 링크정리     $scrap_href = ($is_member) ? './scrap_popin.php?bo_table='.$bo_table.'&wr_id='.$view['wr_id'] : '';     $good_href = ($is_good) ? './good.php?bo_table='.$bo_table.'&wr_id='.$view['wr_id'].'&good=good' : '';     $nogood_href = ($is_nogood) ? './good.php?bo_table='.$bo_table.'&wr_id='.$view['wr_id'].'&good=nogood' : '';

    $html = 0;     if (strstr($view['wr_option'], 'html1'))         $html = 1;     else if (strstr($view['wr_option'], 'html2'))         $html = 2;

    $is_torrent = false;

    if($is_closed) {         $view['content'] = $view['wr_content'];     } else {

        //첨부파일         $view['file'] = get_file($bo_table, $view['wr_id']);

        $view['content'] = conv_content($view['wr_content'], $html);

    }

    // Tag     $is_tag = false;     if($view['as_tag']) {         $tag_list = apms_get_tag($view['as_tag']);         if($tag_list) $is_tag = true;     }

    $attach_list = '';     if(!$is_closed) {         if (implode('', $view['link'])) {             // 링크             for ($k=1; $k<=count($view['link']); $k++) {                 if ($view['link'][$k]) {                     $attach_list .= '';                     $attach_list .= ' '.cut_str($view['link'][$k], 70).'  + '.$view['link_hit'][$k].''.PHP_EOL;                 }             }         }

        // 가변 파일         $j = 0;         for ($k=0; $k'.AS_MP.' 차감 (최초 1회 / 재다운로드시 차감없음)'.PHP_EOL;                     }                     $file_tooltip = '';                     if($view['file'][$i]['content']) {                         $file_tooltip = ' data-original-title="'.strip_tags($view['file'][$k]['content']).'" data-toggle="tooltip"';                     }                     $attach_list .= '';                     $attach_list .= ' '.$view['file'][$k]['source'].' ('.$view['file'][$k]['size'].')  + '.$view['file'][$k]['download'].''.PHP_EOL;                     $j++;                 }             }         }     }

    // FA아이콘     $fa_icon = 'comment';     if($is_lock) {         $fa_icon = 'lock';     } else if ($view['icon_hot']) {         $fa_icon = 'thumbs-up';     } else if ($view['icon_new']) {         $fa_icon = 'bar-chart';     } else if ($view['icon_link']) {         $fa_icon = 'link';     } else if ($view['icon_file']) {         $fa_icon = 'download';     }

    // 댓글     $cmt_id = 'list_comment_'.$view['wr_id'];     $cmt_url = $list_skin_url.'/list.comment.php?bo_table='.$bo_table.'&wr_id='.$view['wr_id'];

?>

    $po_arr = array();     //참여등급     if($po['po_level'] > 0) {         $pmg = 'xp_grade'.$po['po_level'];         $po_arr[] = $xp[$pmg].' 이상';     }

    //참여점수     if($po['po_point'] > 0) {         $po_arr[] = number_format($po['po_point']).AS_MP.' 적립';     }

    //종료일     if($po['po_end']) {         $po_arr[] = str_replace("-", ".", substr($po['po_endtime'],0,10)).' 까지';     }

    //참여수     if($po['po_cnt']) {         $po_arr[] = '총 '.number_format($po['po_cnt']).'명 참여';     }

    //메시지     $po_msg = (!empty($po_arr)) ? implode(' / ', $po_arr) : '';

    $start_datetime  = substr($po['po_datetime'],0,10);     $end_datetime  = substr($po['po_endtime'],0,10);     $today_datetime = date('Y-m-d');                   } ?>

                      0 && $k%$board['bo_gallery_cols'] == 0) { ?>                     

                

    

        
            '.PHP_EOL;                     }                 ?>                 

                $po_stx1 = get_text($po['po_poll1']);                 $po_stx2 = get_text($po['po_poll2']);

                $po_cnt1 = $po['po_cnt1'];                 $po_cnt2 = $po['po_cnt2'];

                $po_per1 = ($po['po_cnt1'] > 0) ? round(($po_cnt1 / $po['po_cnt']) * 1000) / 10 : 0;                 $po_per2 = ($po['po_cnt2'] > 0) ? round(($po_cnt2 / $po['po_cnt']) * 1000) / 10 : 0;

                $wr_id2 = $view['wr_id'];                 $po_id2 = $po['po_id'];

                if($po_per1 == "0" ){                     $po_per3 = "0";                 }else if($po_per1 == "100"){                     $po_per3 = "100";                 }else{                     $po_per3 = $po_per1 + 5;                 }

                if($po_per2 == "0" ){                     $po_per4 = "0";                 }else if($po_per2 == "100"){                     $po_per4 = "100";                 }else{                     $po_per4 = $po_per2 + 5;                 }                 ?>                                                                                                                                                                                                                             

                

                    
                        명(%)                     
                    
                        명(%)                     
                
                
                                     
         
    

                                                                   

    

                
    
    
    
  
                
    
        
 

                                     

                

                

                                             
                            '', 'alt'=>'') : apms_wr_thumbnail($bo_table, $view, 0, 0, false, true); // 썸네일                                 $sns_url  = G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$view['wr_id'];                                 $sns_title = get_text($view['wr_subject'].' | '.$config['cf_title']);                                 $sns_img = $list_skin_url.'/img';                                 echo  get_sns_share_link('facebook', $sns_url, $sns_title, $sns_img.'/sns_fb.png').' ';                                 echo  get_sns_share_link('twitter', $sns_url, $sns_title, $sns_img.'/sns_twt.png').' ';                                 echo  get_sns_share_link('googleplus', $sns_url, $sns_title, $sns_img.'/sns_goo.png').' ';                                 echo  get_sns_share_link('kakaostory', $sns_ur
로그인 후 평가할 수 있습니다

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

시간 또는 분으로 테스트를 해보실 수 있습니다.

테스트 할때는 이런식으로 해보시고 원하시는 구현방식이 잘 적용이 되면 날짜 형식으로 수정하신후 적용하시면 될것 같습니다

</p>

<p><?php

// 하루에 한 번 날짜와 시간으로 카테고리 업데이트

if (G5_SERVER_TIME != $board['bo_1']) {</p>

<p>    // 이미 종료 처리된 것은 필요 없으니 가져오지 않음

    $sql = "SELECT wr_id, ca_name, wr_1, wr_2 FROM {$write_table} WHERE wr_is_comment = 0 AND wr_1 <> '' AND wr_2 <> '' AND ca_name <> '종료' ORDER BY wr_id";

    $result = sql_query($sql);

    for ($i = 0; $row = sql_fetch_array($result); $i++) {</p>

<p>        $start_datetime = $row['wr_1']; // 시작일자 및 시간

        $end_datetime = $row['wr_2']; // 종료일자 및 시간</p>

<p>        $current_datetime = date('Y-m-d H:i:s'); // 현재 날짜 및 시간</p>

<p>        $new_ca_name = '';

        if ($end_datetime < $current_datetime) {

            $new_ca_name = '종료';

        }</p>

<p>        if ($new_ca_name) {

            if ($new_ca_name == $row['ca_name']) continue; // 그냥 통과</p>

<p>            sql_query("UPDATE {$write_table} SET ca_name = '{$new_ca_name}' WHERE wr_id = '{$row['wr_id']}'");

        }

    }</p>

<p>    sql_query("UPDATE {$g5['board_table']} SET bo_1_subj = '카테고리업데이트', bo_1 = '" . G5_SERVER_TIME . "' WHERE bo_table = '$bo_table'");

}

?>

 

G5_SERVER_TIME은 그누보드에서 사용하는 현재 서버 시간을 나타내는 상수입니다. 

테스트를 진행할 때, 현재 시간과 분이 시작일자 및 시간과 종료일자 및 시간 사이에 위치해야 정상적으로 테스트할 수 있습니다

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

답변에 대한 댓글 4개

주퍼
2년 전
자세한설명 감사합니다. 그리고 'wr_1' 이것과 'wr_2' 요걸 --> 'wr_1' 를 '$start_datetime'로 'wr_2'를 '$end_datetime'로 바꾸면되는것이죠? 적용해도 안되서요. ㅎㅎ
주퍼
2년 전
여분필드는 사용 안하고 있습니다. 글쓰기 할때 폼입력값이 달력으로 날짜만 체크하게 되어 있어서요. 그래서 구한 소스코드 원본의 날짜 체크하는 부분이

$start_date = substr($row['start_datetime'], 0, 10); // 시작일자
$end_date = substr($row['end_datetime'], 0, 10); // 종료일자

이렇게 되어 있어서요. 그래서 다른 코드소스를 구해서 구한 코드중의 'wr_1' 이것과 'wr_2' 위에 start_datetime, end_datetime로 대채했는데 안되더라구요. 원본코드에 있는 것은 'start_datetime이고 다른 소스는 wr_1로..
웹메이킹
2년 전
작업중이신 소스 코드를 전체적으로 다시 올려보세요..
주퍼
2년 전
전체소스 올려드렸습니다. 내용이 많이 복잡하구요. 한가지 이해가 안가는 부분이 있습니다. 추천 버튼도 문제가 좀 있습니다. 다른 css 버튼 소스를 가져와서 적용해도 추천과 폼에 작동하는 부분이 안되는듯해요. 클래스명을 바꿔서 해도.. ㅠ

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

2년 전

</p>

<p><?php

$end_datetime  = '2023-07-16 09:00:00';

$today_datetime = date('Y-m-d H:i:s');</p>

<p> </p>

<p>if (strtotime($end_datetime) < strtotime($today_datetime)) {

    header('Location: /bbs/board.php?bo_table=B');

} else {

    echo 'ongoing event A-board';

}

?></p>

<p>

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

답변에 대한 댓글 5개

메너
2년 전
배르만 님께서 여기도 글을 남기셨네요.. 저도 좀 필요해서 보고 있는데요..
echo 'ongoing event A-board'; 이부분에서 게시판명이 "free" 라면

1.echo 'ongoing free'; 가 되는 것인가요?
2.코드를 어디 파일에다 업로드 해야 하나요?

정말 여러가지로 감사드립니다.
주퍼
2년 전
답변주셔서 감사합니다. 요 파일은 write_update.head.skin.php 여기에 올려두면 된다는 말씀이시죠? 일단 해보겠습니다.
주퍼
2년 전
알려주신 방법으로 write_update.head.skin.php 여기 파일에 넣어서 테스트 해보니 반응이 없습니다.그래서 해당 write.skin.php파일에서 적용해보니 링크만 /bbs/board.php?bo_table=B 이쪽으로 가버리고 기존 A-board는 사라저 버리구요. 위에 알려주신 소스가 보드 자체로 이동시켜주는듯한데요. 해당 이벤트 종료된 게시물만 이동하게는 안되나요?? 혹시나해서.. --> echo 'ongoing event A-board'; 부분과 <--> header('Location: /bbs/board.php?bo_table=B'); 이부분 2가지에서
--------------------------------------
if (strtotime($end_datetime) < strtotime($today_datetime)) {
header('Location: /bbs/board.php?bo_table=이동될게시판B');
} else {
echo '($bo_table == "이벤트게시판A" && $wr_id)';
}

---------------------------------------

이렇게 해도 안되네요.
주퍼
2년 전
도와주셔서 일단 채택드렸습니다.

제가 지금 테스트하는게 아미나보드라서요 알려주신 코드와는 잘 안되서요. 방법을 바꾸려고 찾아본 소스입니다.

분류항목을 진행중|종료 이렇게 정해두고..

이벤트 진행중 -> 이벤트 종료 / 이같은게시판에서 "게시글중 마감날짜에 종료"가 되면 해당 "종료" 분류로 이동시키려고 합니다.

아래 코드 한번 봐주시겠어요?
---------------------------------------------------
<?php
//하루에 한번 날짜로 카테고리 업데이트
if(G5_TIME_YMD != $board['bo_1']){

// 이미 진행완료 처리된 것과 날짜 정보가 없는 것은 필요 없으니 빼고 가져온다.
$sql = " select wr_id, ca_name, wr_1, wr_2 from {$write_table} where wr_is_comment = 0 and wr_1 <> '' and wr_2 <>'' and ca_name <> '종료' order by wr_id ";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {

// 이렇게 해도 됩니다.
$start_date = substr($row['wr_1'], 0, 10);
$end_date = substr($row['wr_2'], 0, 10);

// 아래처럼 해도 됩니다.
// $start_date = date('Y-m-d', $row['wr_1']);
// $end_date = date('Y-m-d', $row['wr_2']);

$new_ca_name = '';
if($start_date <= G5_TIME_YMD && $end_date >= G5_TIME_YMD){
$new_ca_name = '진행중';
} else if($start_date < G5_TIME_YMD && $end_date < G5_TIME_YMD){
$new_ca_name = '종료';
}


if($new_ca_name) {
if($new_ca_name == $row['ca_name']) continue; // 그냥 통과

sql_query(" update {$write_table} set ca_name='{$new_ca_name}' where wr_id = '{$row['wr_id']}' ");
}
}

sql_query(" update {$g5['board_table']} set bo_1_subj='카테고리업데이트', bo_1='".G5_TIME_YMD."' where bo_table ='$bo_table' ");
}
?>
-----------------------------------------------------------
위의 코드중
'wr_1' 이것과 'wr_2' 요걸 --> 'wr_1' 를 '$start_datetime'로 'wr_2'를 '$end_datetime'로 바꾸면 될듯한데요. 이게 맞는지요?? 분류항목을 진행중|종료 이렇게 해뒀습니다. 날짜가 하루업데이트라 아직 확인테스트는 못하고 있지만요. 코드가 맞을것 같기는 한데요.
웹메이킹
2년 전
올려주신 코드로 구현해봤습니다. 아직 해결이 되지 않으셨다면 참고하셔서 적용해 보세요
[code]
<?php
// 하루에 한 번 날짜로 카테고리 업데이트
if (G5_TIME_YMD != $board['bo_1']) {

// 이미 종료 처리된 것은 필요 없으니 가져오지 않음
$sql = "SELECT wr_id, ca_name, wr_1, wr_2 FROM {$write_table} WHERE wr_is_comment = 0 AND wr_1 <> '' AND wr_2 <> '' AND ca_name <> '종료' ORDER BY wr_id";
$result = sql_query($sql);
for ($i = 0; $row = sql_fetch_array($result); $i++) {

$start_date = substr($row['wr_1'], 0, 10); // 시작일자
$end_date = substr($row['wr_2'], 0, 10); // 종료일자

$new_ca_name = '';
if ($end_date < G5_TIME_YMD) {
$new_ca_name = '종료';
}

if ($new_ca_name) {
if ($new_ca_name == $row['ca_name']) continue; // 그냥 통과

sql_query("UPDATE {$write_table} SET ca_name = '{$new_ca_name}' WHERE wr_id = '{$row['wr_id']}'");
}
}

sql_query("UPDATE {$g5['board_table']} SET bo_1_subj = '카테고리업데이트', bo_1 = '" . G5_TIME_YMD . "' WHERE bo_table = '$bo_table'");
}
?>

[/code]

이렇게 하시면 이벤트 종료시 종료 카테고리로 이동되게 할 수 있을 것 같습니다.
종료일자가 현재 날짜보다 이전인 게시글들을 '종료' 카테고리로 업데이트합니다. $start_date은 시작일자를, $end_date는 종료일자를 나타내는 변수입니다

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

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

로그인