Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

구마찌의 이진수 여행기

[PHP]DB에서 불러온 값들 implode로 구분하기 본문

PHP

[PHP]DB에서 불러온 값들 implode로 구분하기

구마찌 2021. 8. 23. 22:50

 

 

개요 

DB에서  받아온 값으로 쿼리 실행 후 복수 값 파이프라인(|) 구분 

아래는 사용한 기능들 입니다.

* 참고 ) 전체 코드에 구현된 함수들 중 mysqli_ ~ 문자는 생략 되었으며, 해당 함수들은 재구성 하여 함수로 구현 됨.

 

 

 

1. query() 함수 

-. 예시 

$rs = $db->query($sql);

코드 설명에 앞서, $db 변수에는 db connection 부분이 구현되어 있습니다.

$sql 의 구문의 쿼리를 실행한 값을 $rs(query result set) 의 변수에 삽입 

 

-. parameter : 실행할 query

-. return value : result set , 쿼리 실행 한 row를 불러옵니다. / false

 

 

2. fetch_array() 함수

-. 예시

$ret = $rs->fetch_array();

쿼리 실행 결과를 array 형태로 바꿔주는 함수입니다.

 

-. parameter : MODE 

-. MYSQLI_ASSOC : 인덱스를 "필드명"으로 접근 가능 (associative array)

printf("%s (%s)\n"$row["Name"], $row["CountryCode"]);

-. MYSQLI_NUM : 인덱스를 숫자로 접근 가능 (numeric array)

printf("%s (%s)\n"$row[0], $row[1]);

-. MYSQLI_BOTH : 필드명과 숫자로 접근 가능 (associative and numeric array)

printf("%s (%s)\n"$row[0], $row["CountryCode"]);

 

-. return value : mysql_query 로 리턴된 object 형태의 result set(record)를 array 형태의 결과값으로 변환 

 

 

3. array_push() 함수

-. 예시

array_push($temp, $ret['colmn_name']);

첫번째 파라미터의 array에 두번째 파라미터의 값을 넣어주는 형태입니다.

보통의 경우 두번째 파라미터는  array 객체입니다.

 

-. parameter : array() 배열 객체, 값(int, string, ...)

-. return value : array()

 

 

4. implode() 함수

-. 예시

$result = implode('|', $temp);

두번째 파라미터인 배열의 각 인덱스별 값의 구분자를 첫번째 파라미터로 구분하여 문자열로 리턴하는 함수입니다.

구분 대상은 "배열"만 가능합니다.

 

-. parameter : 구분자, array()

-. return value : String 

 

 

5. 전체 소스

public function getProductList($product_seq, $db) {
    $ret = array();
    $temp = array();
    
    $sql = "select code from table where product_seq = $product_seq";
    $rs = $db->query($sql);
    
    while($ret = $rs->fetch_array()) {
    	array_push($temp, $ret['code']);
    }
    
    $result = implode('|', $temp);
    
    return $result;
}

 

 

 

6. 힘들었던 점

array 객체와 object 관해 이해하는 데에 시간이 걸렸다.

implode 함수의 매개변수로 배열이 들어가야한다는 것을 알면서도

associative array 에 대한 이해도가 떨어져서 값 가져오는 것을 헤맸었다.

다음 번에는 좀 더 능숙하게 사용할 수 있도록 array 와 object 를 연습해야겠다.

Comments