일정 기간 특정 게시판에 글을 안남기면 등급을 내려가게 하고 싶어요.. 정보
일정 기간 특정 게시판에 글을 안남기면 등급을 내려가게 하고 싶어요..본문
일정 기간 특정 게시판에 글을 안남기면 등급을 내려가게 하고 싶어요..
관련 자료도 잘 안보이구요..
일단 설명을 하자면요..
그러니깐....
<?
게시판 이름에다가..
60일동안 글을 안남기면,
멤버의 레벨이 낮아지게 되는..
?>
그런 sql 명령문을 만들고 싶은데..
질문입니다..
01. 한번의 실행으로(php) 이런게 구축이 가능한가요?
02. 관련 자료나.. 게시물을 못찾겠네요ㅠ(새벽 4시 25분..ㅠㅠ)
03. ㅠㅠㅠㅠㅠㅠ
관련 자료도 잘 안보이구요..
일단 설명을 하자면요..
그러니깐....
<?
게시판 이름에다가..
60일동안 글을 안남기면,
멤버의 레벨이 낮아지게 되는..
?>
그런 sql 명령문을 만들고 싶은데..
질문입니다..
01. 한번의 실행으로(php) 이런게 구축이 가능한가요?
02. 관련 자료나.. 게시물을 못찾겠네요ㅠ(새벽 4시 25분..ㅠㅠ)
03. ㅠㅠㅠㅠㅠㅠ
댓글 전체
게시물을 찾아봤는데요..... 마땅한 실행문이 없더라구요;; 부탁 드립니다ㅠㅠ
만들다보니 굉장히 복잡해졌는데.. 쉽게 고쳐주실 고수분들이 계실겁니다..
아래 내용을 해당 게시판 list.skin.php에 넣어두시면 해당 게시판 리스트를 열람할 시에 자동으로 체크합니다.
다른위치에 (홈페이지 메인 인덱스라던지..) 넣으시려면 $write_table자리에 실제 테이블명을 적으시면 됩니다.
//기간설정
$limit_date = "60";
//다운시킬 레벨 설정
$after_level = "1";
//해당게시판에 현재 접속한 멤버 아이디 값으로 게시글 등록일을 꺼내옵니다. limit이 1이니 마지막 한개죠.. desc = 내림차순
$sql = " select wr_datetime from $write_table where mb_id = '$member[mb_id]' order by wr_datetime desc limit 0, 1 ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)){
//$last_write_date라는 변수에 꺼내온 날짜를 담아둡니다.
$last_write_date = $row[wr_datetime];
}
//$last_write_day변수에 날짜데이터를 변환해서 넣어둡니다.
$last_write_day = date("Y-m-d",strtotime($last_write_date));
//$last_write_day변수에 들어있는 날짜데이터를 - 를 기준으로 쪼개서 배열변수로 변환합니다.
$last_write_day = explode("-",$last_write_day);
//마지막 글 쓴 일로부터 $limit_days만큼 지난 날짜를 얻어 $limit_day 함수에 넣어둡니다.
$limit_day = date("Y-m-d",mktime(0,0,0,$last_write_day[1],$last_write_day[2]+$limit_date,$last_write_day[0]));
//$today 변수에 오늘 날짜를 변환해서 넣어둡니다.
$today = date("Y-m-d",time());
//오늘 날짜가 limit_day보다 클 때
if($limit_day < $today){
//멤버테이블에서 해당멤버의 레벨을 $after_level로 수정합니다.
//현재 레벨에서 몇단계 다운시킬경우 현재 레벨을 먼저 가져와서 계산공식을 거쳐서 다시 업데이트 해야함..
$update_sql = " update g4_member set mb_level = '$after_level' where mb_id = '$member[mb_id]' ";
sql_query($update_sql);
//현재 레벨을 가져옵니다.
$sql1 = " select mb_level from g4_member where mb_id = '$member[mb_id]' ";
$result1 = sql_query($sql1);
while($row1 = sql_fetch_array($result1)){
//$update_level변수에 변경된 레벨을 넣습니다.
$update_level = $row1[mb_level];
}
//경고창..
alert("{$limit_date}일동안 게시글을 남기지 않아 레벨 {$update_level}로 강등되셨습니다.");
}
아래 내용을 해당 게시판 list.skin.php에 넣어두시면 해당 게시판 리스트를 열람할 시에 자동으로 체크합니다.
다른위치에 (홈페이지 메인 인덱스라던지..) 넣으시려면 $write_table자리에 실제 테이블명을 적으시면 됩니다.
//기간설정
$limit_date = "60";
//다운시킬 레벨 설정
$after_level = "1";
//해당게시판에 현재 접속한 멤버 아이디 값으로 게시글 등록일을 꺼내옵니다. limit이 1이니 마지막 한개죠.. desc = 내림차순
$sql = " select wr_datetime from $write_table where mb_id = '$member[mb_id]' order by wr_datetime desc limit 0, 1 ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)){
//$last_write_date라는 변수에 꺼내온 날짜를 담아둡니다.
$last_write_date = $row[wr_datetime];
}
//$last_write_day변수에 날짜데이터를 변환해서 넣어둡니다.
$last_write_day = date("Y-m-d",strtotime($last_write_date));
//$last_write_day변수에 들어있는 날짜데이터를 - 를 기준으로 쪼개서 배열변수로 변환합니다.
$last_write_day = explode("-",$last_write_day);
//마지막 글 쓴 일로부터 $limit_days만큼 지난 날짜를 얻어 $limit_day 함수에 넣어둡니다.
$limit_day = date("Y-m-d",mktime(0,0,0,$last_write_day[1],$last_write_day[2]+$limit_date,$last_write_day[0]));
//$today 변수에 오늘 날짜를 변환해서 넣어둡니다.
$today = date("Y-m-d",time());
//오늘 날짜가 limit_day보다 클 때
if($limit_day < $today){
//멤버테이블에서 해당멤버의 레벨을 $after_level로 수정합니다.
//현재 레벨에서 몇단계 다운시킬경우 현재 레벨을 먼저 가져와서 계산공식을 거쳐서 다시 업데이트 해야함..
$update_sql = " update g4_member set mb_level = '$after_level' where mb_id = '$member[mb_id]' ";
sql_query($update_sql);
//현재 레벨을 가져옵니다.
$sql1 = " select mb_level from g4_member where mb_id = '$member[mb_id]' ";
$result1 = sql_query($sql1);
while($row1 = sql_fetch_array($result1)){
//$update_level변수에 변경된 레벨을 넣습니다.
$update_level = $row1[mb_level];
}
//경고창..
alert("{$limit_date}일동안 게시글을 남기지 않아 레벨 {$update_level}로 강등되셨습니다.");
}
감사합니다! 한번 열심히 해볼께요!