여분필드 시간으로 게시물 이동
본문
안녕하세요. 일정시간이 지나면 게시물의 분류를 변경하도록 수정했는데요.
게시물의 분류가 아닌 게시판을 변경하고 싶습니다.
// 하루에 한 번 날짜와 시간으로 카테고리 업데이트
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
값에 따라 스크랩 목록이 내림차순으로 정렬되어 표시됩니다.
이 과정을 통해 원하는 기능을 구현할 수 있으며, 복잡한 변경이나 데이터베이스 구조에 대한 이해가 필요할 수 있습니다.
!-->!-->특정게시글을 다른 게시판으로 이동시키는 것은 bbs/move.php던가 move.update던가를 참고하여 짜깁기한 코드를 넣으면 될거 같습니다,
ORDER BY 이것은 올림 차순이라는뜻이구요
만약 내림차순으로하고싶다면
ORDER BY wr_id DESC 이렇게하면됩니다.