채택완료

반복문을 돌릴때 특정 코드를 받으면 계속 돌아가게 하고 싶습니다.

2020-08-25 (화) 18:34:43 3,295

안녕하세요.

curl로 api를 호출을 반복문을 통해 여러번 돌리는 작업을 해야하는데요

한 번 호출시 api에서 rcode = 200이라는 값을 받아오는데

이 값을 받아야 다음 반복이 진행되도록 조건을 주려면 어떻게 해야되나요?

Copy
<?php
    include_once('./_common.php');

    $sql = "select * from test11";
    $rst = sql_query($sql);

 

    if($decoded['rcode']=="200"){
        while($row = sql_fetch_array($rst)){
            $sct_addr = "TEST";
            $sender = "master";
            $recipient = $row['mb_id'];
            $amount = $row['Amount'];

            $curl = curl_init();

            curl_setopt_array($curl, array(
              CURLOPT_URL => "http://abc.com",
              CURLOPT_RETURNTRANSFER => true,
              CURLOPT_ENCODING => "",
              CURLOPT_MAXREDIRS => 10,
              CURLOPT_TIMEOUT => 0,
              CURLOPT_FOLLOWLOCATION => true,
              CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
              CURLOPT_CUSTOMREQUEST => "POST",
              CURLOPT_POSTFIELDS =>"",
              CURLOPT_HTTPHEADER => array(
                "Content-Type: application/json"
              ),
            ));

            $response = curl_exec($curl);

            curl_close($curl);
            $decoded = json_decode($response, true);
            //print_r($decoded);
            echo $decoded['rcode'];
        }
    }else{
        echo "error";
        exit;
    }
?>

위와 같이 소스를 만들었는데요 if($decoded['rcode']=="200"){ 이렇게 조건을 주니 

맨 처음 시작할때가 문제더라구요;;;;;;

|

답변 1개

채택된 답변
+20 포인트
2020-08-25 (화) 20:30:19
Copy
<?php
    include_once('./_common.php');
    $sql = "select * from test11";
    $rst = sql_query($sql);
 
    while($row = sql_fetch_array($rst)){ // 이렇게 반복이고
        $sct_addr = "TEST";
        $sender = "master";
        $recipient = $row['mb_id'];
        $amount = $row['Amount'];
        $curl = curl_init();
        curl_setopt_array($curl, array(
          CURLOPT_URL => "http://abc.com",
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => "",
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => "POST",
          CURLOPT_POSTFIELDS =>"",
          CURLOPT_HTTPHEADER => array(
            "Content-Type: application/json"
          ),
        ));
        $response = curl_exec($curl);
        curl_close($curl);
        $decoded = json_decode($response, true);
        //print_r($decoded);
        echo $decoded['rcode'];

        // 건별로 rcode값 확인해서

        if($decoded['rcode']=='200'){

            // 원하는 동작

        } else {

            // 자. 200이 아니면, 무엇을 하길 원하나요? 200 떨어질 때까지 재시도?

        }
    }

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