테스트 사이트 - 개발 중인 베타 버전입니다

영카트 카테고리 조회하는 api를 만드려고 하는데요 채택완료

pretthsky 1년 전 조회 3,755

고수님들 카테고리를 가져오는 get api를 만들려고 하는데

 

아래와 같이 코딩을 했는데,

cate_item_get 함수를 안타는것 같아서 함수를 주석처리하고 호출해봤는데도

처음의 echo "dddd";  와 마지막 echo "<br/>end";는 출력이 되는데

중간에는 아에 안나오는데 이유가 뭘까요?

 

php 초보... 도와주세용 

 

 

getRoute()->get('/', 'cate_item_get');
##getRoute()->post('/cate_item_get', 'cate_item_get');
echo "dddd";
// cate_item_get
##function cate_item_get() {

   echo "ddddq2";
    // PROCESS DATA ARRAY
    
    $result_data = array();     # 결과 데이터
    

        /**
         * 기본정보
         */
   
        $result = sql_fetch(" SELECT ca_id, ca_name FROM `g5_shop_category` ORDER BY ca_order, ca_id ");
            
        
        // RESULT DATA RETURN
        $result_data["result_code"] = '1';
        $result_data["result_message"] = 'success';
        $result_data["data"] = array();
echo "1";
echo $result_data;
        // 가져온 데이터를 API 응답 배열에 추가
        if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                $data = array();
                foreach ($columns as $column) {
                    $data[$column] = $row[$column];
                    echo $data[$column];
                }
                
                array_push($result_data["data"], $data);
            }
        } else {
            // ERROR
            $result_data['result_code'] = '9999';
            $result_data['result_message'] = 'No data found in the database!';
            echo "9999";

        }
        

        // API 응답 출력
    header('Content-Type:application/json; charset=utf-8');
    echo json_encode($result_data);
##}


echo "<br/>end";

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

답변 4개

채택된 답변
+20 포인트

다음을 참고 하셔서 원하시는 형식으로 구현하시면 되지 않을까 생각합니다.

</p>

<p><?php

function cate_item_get() {

    $result_data = array(); </p>

<p>    $result = sql_fetch("SELECT ca_id, ca_name FROM `g5_shop_category` ORDER BY ca_order, ca_id ");</p>

<p>    $result_data["result_code"] = '1';

    $result_data["result_message"] = 'success';

    $result_data["data"] = array();</p>

<p>    if ($result->num_rows > 0) {

        while($row = $result->fetch_assoc()) {

            $data = array();

            // $columns 변수가 없으므로 해당 부분 수정

            $data["ca_id"] = $row["ca_id"];

            $data["ca_name"] = $row["ca_name"];

            array_push($result_data["data"], $data);

        }

    } else {

        $result_data['result_code'] = '9999';

        $result_data['result_message'] = 'No data found in the database!';

    }</p>

<p>    header('Content-Type:application/json; charset=utf-8');

    echo json_encode($result_data);

}</p>

<p>$method = $_SERVER['REQUEST_METHOD'];

$path = $_SERVER['REQUEST_URI'];</p>

<p>if ($method == 'GET' && $path == '/') {

    cate_item_get();

} else {

    http_response_code(404);

    echo json_encode(array("result_code" => 404, "result_message" => "Not Found"));

}

 

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

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

pretthsky
1년 전

감사합니다! 해결됐어요 ^^

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

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

JSON 응답과 한글 표현:
JSON 응답에서 한글이 유니코드로 표현되는 것은 PHP의 json_encode() 함수가 Unicode 이스케이프를 적용하기 때문입니다. 

json_encode() 함수에 JSON_UNESCAPED_UNICODE 플래그를 추가하여 유니코드 이스케이프를 제거할 수 있습니다.

 

다음을 참고해 보세요

</p>

<p><?php

function cate_item_get() {

    $result_data = array(); 

    $result = sql_fetch("SELECT ca_id, ca_name FROM `g5_shop_category` ORDER BY ca_order, ca_id ");

    $result_data["result_code"] = '1';

    $result_data["result_message"] = 'success';

    $result_data["data"] = array();

    if ($result->num_rows > 0) {

        while($row = $result->fetch_assoc()) {

            $data = array();

            // $columns 변수가 없으므로 해당 부분 수정

            $data["ca_id"] = $row["ca_id"];

            $data["ca_name"] = $row["ca_name"];

            array_push($result_data["data"], $data);

        }

    } else {

        $result_data['result_code'] = '9999';

        $result_data['result_message'] = 'No data found in the database!';

    }

    header('Content-Type: application/json; charset=utf-8');

    echo json_encode($result_data, JSON_UNESCAPED_UNICODE); // 유니코드 이스케이프를 제거하여 한글을 그대로 출력

}

$method = $_SERVER['REQUEST_METHOD'];

$path = $_SERVER['REQUEST_URI'];

if ($method == 'GET' && $path == '/') {

    cate_item_get();

} else {

    http_response_code(404);

    echo json_encode(array("result_code" => 404, "result_message" => "Not Found"));

}

?>

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

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

pretthsky
1년 전

감사합니다

어찌어찌해서 나왔는데

DB에서는 ca_name이 한글로 나오는데

왜 \ud328\uc158\uc7a1\ud654 이런것으로 나오는지 아시나요? ㅜㅜ

 

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

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

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

로그인