영카트 경로 문제

영카트 경로 문제

QA

영카트 경로 문제

답변 2

본문

안녕하세요..고수님들

 

예전에 만들어서 운영하다 접어둔 사이트를 글자만 수정하여 성격이 다른 사이트로 바꾸려고 하는데요.

경로가 깨졌는지 문제가 생겨서 도움을 청합니다.

 

http://camcar.kr/shop/item.php?it_id=1610196679

 

상기 상품의 환율계산이 안 되고 아래 그림과 같이 표현이 됩니다.

988181774_1610469740.1194.png

 

이 질문에 댓글 쓰기 :

답변 2

환율계산 가져오는 소스가 끊긴거 아닐까요?

일단 확인되는건 달러 기준 usd라는 값이 어디서 오는건데요

그래서 그걸 가격/usd로 계산해줘서 값이 토출이 되는건데..

그게 어디서 오는지는 저 페이지로는 확인이 안되네요

lib이나 extend 어디에 있을 수 있겠습니다

혹시 이 걸까요??

<?php
function exchange_currency(){
    //$exchange_url = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22USDKRW,EURKRW,JPYKRW,CNYKRW%22)&format=json&env=store://datatables.org/alltableswithkeys&callback=";
    $exchange_url = "http://api.manana.kr/exchange/rate/KRW/EUR,JPY,USD,CNY.json";
      //http://data.fixer.io/api/latest?access_key=f5c328af24a323ce3e36bbd124c34d6b&base=EUR&symbols=KRW,USD,CNY,JPY
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $exchange_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1000);
    $rt = curl_exec($ch);
    curl_close($ch);

    $obj = json_decode($rt);
    $query = "INSERT INTO exchange_currency SET ";
    foreach($obj as $key => $value){
        $value->name = substr($value->name, 0, 3);
//        echo($value->date." | ".$value->name." | ". $value->rate); // 환율 넣기...
        $query .= $value->name."= '".$value->rate."', ";
        echo "<br>";
    }
//    echo  " CNY: 154.3, USD: 994,  EUR: 1130, JPY: 898";

    $query .= 'reg_date = now() ';

    //1시간 이내의 업데이트가 없으면 환율 업데이트.
    $sql = "select count(*) as cnt from exchange_currency WHERE reg_date > DATE_ADD( NOW() , INTERVAL -1 HOUR ) limit 1";
    $result = sql_query($sql);
    $chk_row = sql_fetch_array($result);

    $ret_msg = 0;
//    echo '업데이트 갯수:::'.$chk_row['cnt'];
    if($chk_row['cnt'] == 0) {
        sql_query($query);
        $ret_msg =1;
    }

    return $ret_msg;
}

//환율정보 가져오기_
function getCurrency($basic_currency_field){
//    echo "getCurreccy=".$basic_currency_field;
    if(basic_currency_field !=''){
        $sql = "select ".$basic_currency_field." from exchange_currency order by reg_date DESC limit 1";
        $result = sql_query($sql);
        $cData = sql_fetch_array($result);
        return  $cData[$basic_currency_field];
    }else{
        return $basic_currency_field;
    }
}

//환율전체정보 가져오기
function getAllCurrtrency(){
    $sql = "select CNY, EUR, JPY, USD from exchange_currency order by reg_date DESC limit 1";
    $result = sql_query($sql);
    $cData = sql_fetch_array($result);
    return $cData;
}
?>

맞네요

https://api.manana.kr/exchange/rate/KRW/EUR,JPY,USD,CNY.json

쳐보셔서 값을 확인 후

exchange_currency 테이블에 정확히 올라가는지 보시고

만약 정확히 올라갔다면 그 뒤에 뿌려주는게 문제인거고

안올라갔다면 업데이트가 문제입니다

소스보니 해당 환율보여지는 값에 빈값으로 확인이 됩니다.

환율가져오는 부분이 제대로 안불러와져서 깨지는듯 합니다.

<?php
function exchange_currency(){
    //$exchange_url = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22USDKRW,EURKRW,JPYKRW,CNYKRW%22)&format=json&env=store://datatables.org/alltableswithkeys&callback=";
    $exchange_url = "http://api.manana.kr/exchange/rate/KRW/EUR,JPY,USD,CNY.json";
      //http://data.fixer.io/api/latest?access_key=f5c328af24a323ce3e36bbd124c34d6b&base=EUR&symbols=KRW,USD,CNY,JPY
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $exchange_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1000);
    $rt = curl_exec($ch);
    curl_close($ch);

    $obj = json_decode($rt);
    $query = "INSERT INTO exchange_currency SET ";
    foreach($obj as $key => $value){
        $value->name = substr($value->name, 0, 3);
//        echo($value->date." | ".$value->name." | ". $value->rate); // 환율 넣기...
        $query .= $value->name."= '".$value->rate."', ";
        echo "<br>";
    }
//    echo  " CNY: 154.3, USD: 994,  EUR: 1130, JPY: 898";

    $query .= 'reg_date = now() ';

    //1시간 이내의 업데이트가 없으면 환율 업데이트.
    $sql = "select count(*) as cnt from exchange_currency WHERE reg_date > DATE_ADD( NOW() , INTERVAL -1 HOUR ) limit 1";
    $result = sql_query($sql);
    $chk_row = sql_fetch_array($result);

    $ret_msg = 0;
//    echo '업데이트 갯수:::'.$chk_row['cnt'];
    if($chk_row['cnt'] == 0) {
        sql_query($query);
        $ret_msg =1;
    }

    return $ret_msg;
}

//환율정보 가져오기_
function getCurrency($basic_currency_field){
//    echo "getCurreccy=".$basic_currency_field;
    if(basic_currency_field !=''){
        $sql = "select ".$basic_currency_field." from exchange_currency order by reg_date DESC limit 1";
        $result = sql_query($sql);
        $cData = sql_fetch_array($result);
        return  $cData[$basic_currency_field];
    }else{
        return $basic_currency_field;
    }
}

//환율전체정보 가져오기
function getAllCurrtrency(){
    $sql = "select CNY, EUR, JPY, USD from exchange_currency order by reg_date DESC limit 1";
    $result = sql_query($sql);
    $cData = sql_fetch_array($result);
    return $cData;
}
?>

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 281
© SIRSOFT
현재 페이지 제일 처음으로