채택완료

방문자수 리셋 함수 코드리뷰 부탁해요

 

Copy
function reset_g5_visit(){ 
        $sql = " TRUNCATE g5_visit_sum ";
        sql_query($sql);

        $sql = " TRUNCATE g5_visit ";
        sql_query($sql);
    }

    reset_g5_visit();

 

요 코드를 40일 마다 한번씩 실행할려고 하는데, 어떻게 해야 하나요?

|

답변 2개 / 댓글 2개

채택된 답변
+20 포인트

코드를 조금 변경해드리죠

Copy
function reset_g5_visit( $diffdate = 40){ 

        $chkrow = sql_fetch("SELECT if (DATEDIFF(CURDATE(), vi_date) > {$diffdate},1,0) chk FROM g5_visit order by vi_id  LIMIT 1");

        if ($chkrow['chk']) {


            $sql = " TRUNCATE g5_visit_sum ";
            sql_query($sql);
            $sql = " TRUNCATE g5_visit ";
            sql_query($sql);

        }
    }


    reset_g5_visit();   // 이건 extend 어디에 넣어도 무방합니다.

    // 40일이 아닌 일자를 기간을 변경하고 싶으면

   // reset_g5_visit(30);  //이런식으로 일자를 변경하면됩니다.
 
 

 

답변에 대한 댓글 2개

이렇게 하면 해당 날짜에서는 페이지 리프레쉬 할때마다 본 함수가 실행되서 비효율이 생기는데 한번만 실행 되게 할려면 어찌해야 하나요?
visit 관련테이블에 상태를 관리하지 않으려면
존재하는 데이타중 1개Row로 관리하는 방법입니다만
그게 아니라면

config테이블같은곳에 컬럼을 추가해서
그누보드 설정값체크하듯 truncate값이 실행되면 그 값의 일자를 변경하는겁니다.
그러면 위와 같이 visit를 체크하지 않아도 되지만
db의 테이블 컬럼값을 활용하는 측면에서는 동일합니다.
이미존재하는 환경값을 활용하면 약간의 개선은 있겠네요

그누보드 플러그인 자료에서 크론 검색해보세요.

답변을 작성하려면 로그인이 필요합니다.