여분필드 시간으로 게시물 이동

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
여분필드 시간으로 게시물 이동

QA

여분필드 시간으로 게시물 이동

본문

안녕하세요. 일정시간이 지나면 게시물의 분류를 변경하도록 수정했는데요.

 

게시물의 분류가 아닌 게시판을 변경하고 싶습니다.

 

// 하루에 한 번 날짜와 시간으로 카테고리 업데이트
if (G5_SERVER_TIME != $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_datetime = $row['wr_1']; // 시작일자 및 시간
        $end_datetime = $row['wr_2']; // 종료일자 및 시간
        $current_datetime = date('Y-m-d H:i:s'); // 현재 날짜 및 시간
        $new_ca_name = '';
        if ($end_datetime < $current_datetime) {
            $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_SERVER_TIME . "' WHERE bo_table = '$bo_table'");
}

 

 

위 소스를 이용하여 현재시간이 지나면 자동으로 분류가 변경되도록은 수정했는데

분류변경이 아닌 게시판을 이동시키고 싶은데 어느부분을 수정해야 할지 모르겠습니다 ㅠㅠ

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

두번째 질문은 스크랩 기능을 이용하고 있는데 여분필드(시간) wr_2를 불러와서 표기중입니다.

순서를 wr_2에 따라서 내림차순으로 정렬하고 싶은데 스크랩부분은 어디를 손봐야하는지 모르겠습니다.

 

도와주실 고수분 있으신가요 ㅠㅠ 제가 초보라 너무 어렵게 알려주시면 잘 알지 못합니다..

 

 

이 질문에 댓글 쓰기 :

답변 3

게시물의 분류를 변경하는 것에서 한 단계 더 나아가 게시판 자체를 이동시키는 작업은 좀 더 복잡할 수 있습니다. 기존의 코드를 변형하여 게시물을 다른 게시판으로 이동시키려면 몇 가지 고려해야 할 사항이 있습니다. 이 과정을 단계별로 나누어 설명드리겠습니다.

1. 게시물 이동 로직 추가하기

게시물을 다른 게시판으로 이동시키기 위해서는, 게시물의 bo_table 값을 변경하는 쿼리를 추가해야 합니다. 이는 기존의 게시판 식별자(bo_table)에 새로운 값을 할당하여, 게시물이 새 게시판에 속하도록 만듭니다. 또한, 게시물을 이동시킬 새로운 게시판의 bo_table 값을 알아야 합니다.

2. 코드 수정 예시

기존의 코드에 다음과 같은 변경을 추가할 수 있습니다. 예를 들어, 게시물이 종료 상태가 되면 특정 게시판으로 이동시키고자 한다면, 아래와 같이 수정할 수 있습니다.


// 게시물을 이동시킬 새 게시판의 bo_table 값
$new_bo_table = '새로운게시판ID';
for ($i = 0; $row = sql_fetch_array($result); $i++) {
    $start_datetime = $row['wr_1']; // 시작일자 및 시간
    $end_datetime = $row['wr_2']; // 종료일자 및 시간
    $current_datetime = date('Y-m-d H:i:s'); // 현재 날짜 및 시간
    if ($end_datetime < $current_datetime) {
        // 게시물의 bo_table 값을 새로운 게시판의 bo_table 값으로 변경
        sql_query("UPDATE {$write_table} SET bo_table = '{$new_bo_table}' WHERE wr_id = '{$row['wr_id']}'");
    }
}


중요: 이 코드는 예시일 뿐, 실제 적용시에는 {$write_table} 테이블에 bo_table 컬럼이 존재해야 하며, 이 컬럼이 게시판의 식별자를 변경하는 데 사용될 수 있어야 합니다. 대부분의 경우, 게시판 식별자는 별도의 테이블에 저장되므로, 실제 구현에 앞서 데이터베이스 구조를 정확히 파악하고 적절한 수정이 필요합니다.
 

3. 스크랩 목록 정렬 변경

스크랩 목록을 wr_2에 따라 내림차순으로 정렬하고자 한다면, 스크랩 목록을 조회하는 SQL 쿼리에 ORDER BY wr_2 DESC를 추가해야 합니다. 예를 들어, 스크랩 목록을 불러오는 기존 쿼리가 있다면, 그 쿼리 끝에 다음과 같이 정렬 조건을 추가합니다.

 


SELECT * FROM 스크랩테이블 WHERE 조건 ORDER BY wr_2 DESC;


 

이렇게 하면 wr_2 값에 따라 스크랩 목록이 내림차순으로 정렬되어 표시됩니다.

이 과정을 통해 원하는 기능을 구현할 수 있으며, 복잡한 변경이나 데이터베이스 구조에 대한 이해가 필요할 수 있습니다.

친절한 답변 감사합니다.  하지만 초보자라 적용을 해봐도 아무일도 일어나지 않네요 ㅠㅠ
컬럼이라는게 뭔지 잘 모르겠어요.

컬럼=bo_table=게시판id로 이해했습니다.

새로운 게시판id가 au이고 사용하는 게시판id가 test1이라서

// 게시물을 이동시킬 새 게시판의 bo_table 값
$write_table = 'test1';
$new_bo_table = 'au';
for ($i = 0; $row = sql_fetch_array($result); $i++) {
    $start_datetime = $row['wr_1']; // 시작일자 및 시간
    $end_datetime = $row['wr_2']; // 종료일자 및 시간
    $current_datetime = date('Y-m-d H:i:s'); // 현재 날짜 및 시간
    if ($end_datetime < $current_datetime) {
        // 게시물의 bo_table 값을 새로운 게시판의 bo_table 값으로 변경
        sql_query("UPDATE {$write_table} SET bo_table = '{$new_bo_table}' WHERE wr_id = '{$row['wr_id']}'");

이렇게 넣어봤는데 소용이 없네요....

스크랩부분에는 저런 비슷한 부분이 없어요.,..

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');

$thum_width = 203; // 썸네일 가로크기
$thum_height = 271; // 썸네일 세로크기
$img_cols = 4; //썸네일 가로 개수

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$skin_url.'/style.css" media="screen">', 0);

?>

<div class="sub-title">
<h4>
<?php if($member['photo']) { ?>
<a href="<?php echo $list[$i]['opener_href_wr_id'] ?>" target="_blank" onclick="opener.document.location.href='<?php echo $list[$i]['opener_href_wr_id'] ?>'; return false;">
      <?php
$thumb = get_list_thumbnail($list[$i]['bo_table'], $list[$i]['wr_id'], $thum_width, $thum_height, false, true);
if($thumb['src']) {
    $img_content = '<span style="float:left;width:100%"><img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'"></span>';
} else {
    $img_content = '';
}
echo $img_content;
?></a>
<?php } else { ?>
<i class="fa fa-user"></i>
<?php } ?>
<?php echo $g5['title'];?>
</h4>
</div>


<table class="div-table table">
<tbody>
<tr>
<?php
for ($i=0; $i<count($list); $i++) {
$thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], $thumb_width, $thumb_height);
if($thumb['src']) {
    $img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" width="'.$thumb_width.'" height="'.$thumb_height.'">';
} else {
 $img_content = '<img src="'.$latest_skin_url.'/img/noimage.gif" width="'.$thumb_width.'" height="'.$thumb_height.'">';
}
?>
<?php if ($i>0 && ($i % $img_cols == 0)) { ?>
</tr>
<tr>
    <td colspan="<?php echo $img_cols ?>" height="5"></td>
</tr>
<tr>
<?php } ?>
    <td align="center" valign="top" style="padding:5px">
        <table width="<?php echo $thumb_width ?>" cellspacing="0" cellpadding="0">
        <tr>
            <td align="center"> <a href="<?php echo $list[$i]['opener_href_wr_id'] ?>">
           
            <?php if(!G5_IS_MOBILE){ ?>
      <?php
$thumb = get_list_thumbnail($list[$i]['bo_table'], $list[$i]['wr_id'], $thum_width, $thum_height, false, true);
if($thumb['src']) {
    $img_content = '<span style="float:left;width:100"><img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'"></span>';
} else {
    $img_content = '';
}
echo $img_content;
?>
<?php } ?>
<?php if(G5_IS_MOBILE){ ?>
      <?php
$thumb = get_list_thumbnail($list[$i]['bo_table'], $list[$i]['wr_id'], 84, 111, false, true);
if($thumb['src']) {
    $img_content = '<span style="float:left;width:100"><img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'"></span>';
} else {
    $img_content = '';
}
echo $img_content;
?>
<?php } ?>


</a></td>
        </tr>
                <tr>
            <td align="center" style="padding-top:5px"><a href="<?php echo $list[$i]['opener_href_wr_id'] ?>">



          <b><?php echo date("m.d H:i", strtotime($list[$i]['wr_2'])); ?></b>
           
           
            </a></td>
        </tr>
                <tr>
            <td align="center" style="padding-top:5px"><a href="<?php echo $list[$i]['del_href'];  ?>" onclick="del(this.href); return false;">삭제</a></td>
        </tr>
       
        </table>
    </td>
<?php } ?>
<? if (count($list) == 0) { echo "<td align=center height=50>관심목록이 없습니다.</td>"; } ?>
</tr>
</table>


이게 전체 스킨 소스에요.

ORDER BY  이것은 올림 차순이라는뜻이구요

만약 내림차순으로하고싶다면

ORDER BY wr_id DESC 이렇게하면됩니다.

위 소스를 이용하여 현재시간이 지나면 자동으로 분류가 변경되도록은 수정했는데

분류변경이 아닌 게시판을 이동시키고 싶은데 어느부분을 수정해야 할지 모르겠습니다 ㅠㅠ?

분류는 게시물의 분류ca_name입니다. 게시판은 이동은 게시판 보드테이블 아이디가 필요하겠죠?
그렇다면

    sql_query("UPDATE {$g5['board_table']} SET bo_1_subj = '카테고리업데이트', bo_1 = '" . G5_SERVER_TIME . "' WHERE bo_table = '$bo_table'"); 이부분을 보시면됩니다. 현제 이부분은 필드를업데이트 하고있습니다.

이부부분을 이동 업데이트로 수정 처리 해주시기 바랍니다.

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

회원로그인

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