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

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

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'"); 이부분을 보시면됩니다. 현제 이부분은 필드를업데이트 하고있습니다.

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

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

회원로그인

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