sql 질문입니다...

sql 질문입니다...

QA

sql 질문입니다...

본문


$today = time(); // 오늘
$end_day = date("t", $today); //마지막날
for($i=0; $i<=$end_day; $i++){ 
    if ($default['count'] > 2){
        if ($i >0 && $i < 10) {
            $i = "0".$i;
        }    //end if
            
        if (date("Y-m-01") == date("Y-m-d")){
            sql_query($reset);
            $count = $default['count'];
            // 01일과 오늘이 같다면 초기화
        } //end if
        
        if($i && $i % 3 == 0){
            echo date("Y-m-$i");
            /*
            if (date("Y-m-$i") == date("Y-m-d")){
            } //end if
            */
        }//end if
     }//end if
}  //end for 
 

 

3의 배수인 날짜만 출력하도록 하였습니다.

ex) 2018-05-03, 2018-05-06

 

근데 해당 날짜에만 쿼리를 날려야 하는데.. 막혔습니다 여기서,,

조건을 어떻게 잡아야 할까요,,

 

오늘이 3의 배수인 날이라면 쿼리를 한번 날려라 이거입니다.. ㅠㅠ 도와주세요

 

이 질문에 댓글 쓰기 :

답변 2

for 안에 넣지말고 따로 처리하세요.

반복해서 채크할 필요없는 부분인거 같아요.


$day = date("d"); //오늘의 날일
if($day%3 == 0){
  sql_query($query);
}

 

그리고 아래부분은 지우고

if ($i >0 && $i < 10) {

  $i = "0".$i;

}

 

이렇게 쓰는 방법도 있습니다.

echo date("Y-m-".str_pad($i, 2, "0", STR_PAD_LEFT));

근데 왜 새로고침 할때마다 쿼리가 들어갈까요? ㅠㅠㅠ
10에서 3의 배수일때만 숫자가 줄어야 하거든요..

if($day%3 == 0){
$new = $default['count'] - 1;
$update_sql = "update test set count = '$new' ";
sql_query($update_sql);
$default = sql_fetch($sqls);
echo $default['count'];
}

이렇게 했더니
새로고침할때마다 숫자가 줄어듭니다..

하루에 한번만 해야한다면 db에 날짜 필드를 하나 추가하세요.

if($day%3 == 0){
$new = $default['count'] - 1;
$update_sql = "update test set count = '$new', wdate='$today' where wdate != '$today' ";
sql_query($update_sql);
$default = sql_fetch($sqls);
echo $default['count'];
}

답변을 작성하시기 전에 로그인 해주세요.
전체 179
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT