sql 잘하시는분들 도와주세요 ~ 정보
sql 잘하시는분들 도와주세요 ~본문
일단 소스 한번 구경해주시고요 ㅎ
<?
/************************************************************************
하루에 1번만 실행합니다.
특정 테이블의 날짜가 현재 날짜와 비교해 이전이면 해당 게시물을 지정한 테이블로 복사 또는 이동시킵니다.
*************************************************************************/
$timer[now] = date("Y-m-d"); // 현재 날짜
$timer[last] = $config[cf_10]; // 최근실행 날짜정보를 가지는 여분필드
/* 여기서부터 사용자 환경에 따라 변경하시기 바랍니다. */
$timer[tbl_from] = ""; // 원본 테이블
$timer[tbl_field] = "wr_4"; // 날짜정보를 가지고 있는 테이블 컬럼명
$timer[tbl_to] = array(""); // 이동할 테이블명 배열
$timer[sw] = "move"; // copy: 게시물 복사, move: 게시물 이동
/* 여기까지 사용자 환경에 따라 변경 가능한 코드입니다. */
// 최근실행 날짜와 현재 날짜가 다르면 실행
if ($timer[last] != $timer[now]) {
$sql = " update $g4[config_table] set cf_10='$timer[now]' ";
sql_query($sql);
$fromTable = $g4[write_prefix] . $timer[tbl_from];
$sql = " select wr_id from $fromTable where cast($timer[tbl_field] as date) < now() ";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {
$wr_id_list[$i] = $row[wr_id];
}
if (count($wr_id_list)) {
$timer[wr_id_list] = implode(",", $wr_id_list);
move_update($timer);
}
}
function move_update($timer)
{
global $g4, $config, $member, $is_admin;
$sw = $timer[sw];
$bo_table = $timer[tbl_from];
$write_table = $g4['write_prefix'] . $bo_table;
$wr_id_list = $timer[wr_id_list];
$_POST['chk_bo_table'] = $timer[tbl_to];
ob_start();
include_once("$g4[bbs_path]/move_update.php");
ob_end_clean();
}
?>
위에 보시다시피 마지막 실행날짜와 현재 날짜가 다르면 게시물날자랑 현재 날자랑 비교해서 이동하게끔 시키는 건데요 ㅇㅅㅇ...
이게 첫날업로드시킬때[마지막실행기록x] 잘작동하고 다음날에는 마지막실행기록만 하고 이동을 안시키고 모레는 그 전날꺼만 이동시키고 모레날짜랑 똑같은건 이동을 안시킵니다 ;ㅁ; !!! 헐
그래서 제가 생각하기로는
마지막 실행날짜와 현재날짜 비교하는거랑
게시물날짜(wr_4)랑 현재날짜 비교하는거 중에서
게시물날짜랑 비교하는 현재날짜가 안맞는거같습니다 ;ㅁ; [분명 생각일뿐이여요;;.]
열심히 뚫어져라 봤지만... 모르겟네요 ;; 도와주세요 ~
댓글 전체

$sql = " select wr_id from $fromTable where cast($timer[tbl_field] as date) <= now() "; 이렇게 해보세요
$sql = " select wr_id from $fromTable where cast($timer[tbl_field] as date) <= curdate() ";