sql 질문입니다... 채택완료

Copy
$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개

채택된 답변
+20 포인트

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

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

Copy
$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));

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

근데 왜 새로고침 할때마다 쿼리가 들어갈까요? ㅠㅠㅠ
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'];
}

이렇게 했더니
새로고침할때마다 숫자가 줄어듭니다..
아하! 이윤느 알았어요! 오늘 3의 배수 날이니까 계속 줄어들죠 ㅎㅎ
근데!!!!!!! 그래서!!!! 어떻게 한번만.. 하게 할수있나요..
하루에 한번만 해야한다면 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'];
}
그래도 줄어드네요,, ....... $today 라는 숫자가 없어서 그럴까요
제가
$day = date("d");
이걸 빼먹고있엇네요 ㅎㅎ

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

sql 질문이 맞나요? ㅋㅋ

그냥 마지막 if 문일때 sql_query(query); 하면 되는거 아닌가요?

로그인 후 평가할 수 있습니다

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

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

로그인
🐛 버그신고