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() ";