💫 블로그 카테고리별 글 개수 추가하기
DB에 이미 카테고리별 count를 계산한 컬럼이 있어서 PHP 파일을 새로 생성해서 Json으로 반환 후, 자바스크립트를 이용해서 카테고리 옆에 숫자를 적어줄 예정이다 !
💫 코드
<?php
host = ""; // MySQL 호스트 이름user = ""; // MySQL 계정 아이디
pw = ""; // MySQL 계정 비밀번호dbName = ""; // MySQL 데이터베이스 이름
// MySQL 데이터베이스 연결
db = new mysqli(host, user,pw, dbName);db->set_charset("utf8");
function mq(cat) //cat: 카테고리 아이디
{
global db;cat = (int)cat; //cat은 숫자만 받을거니까 int로 타입캐스팅
query = "SELECT count FROM wp_term_taxonomy WHERE term_taxonomy_id={cat}";
result =db->query(query); //쿼리 실행count = result->fetch_array()['count']; //변수에 쿼리 결과 저장
returncount; // 쿼리 결과 반환
}
//쿼리 결과 변수에 저장
blog_count = mq(1);php_count = mq(3);
database_count = mq(4);c_count = mq(5);
sql_count = mq(9);javascript_count = mq(30);
web_count = mq(33);results = array(
'Blog' => blog_count,
'PHP' =>php_count,
'Database' => database_count,
'C#' =>c_count,
'SQL' => sql_count,
'JAVASCRIPT' =>javascript_count,
'WEB' => web_count
);
//json 출력
echo json_encode(results);
?>
💫 코드에서 이해가 안갔던 부분
$count = $result->fetch_array()['count'];
$result
: 데이터베이스 쿼리 결과를 저장하는 객체fetch_array()
: 결과 집합에서 한 행(row)을 연관 배열(associative array) 또는 숫자 인덱스 배열로 가져오는 메서드['count']
: 가져온 배열에서count
라는 키의 값을 추출- 최종적으로
$count
변수에는 쿼리 결과에서 반환된count
값이 저장
💫 fetch_array()
fetch_array()
메서드는 MySQLi 확장에서 제공, 결과 집합에서 한 행을 배열 형태로 반환
$row = $result->fetch_array();
리턴 값
- 성공 시: 현재 행 데이터를 포함하는 배열(연관 배열 및 숫자 배열을 포함 가능)
- 실패 시:
null
또는false
반환 (더 이상 가져올 행이 없을 경우)
주요 특징
- 배열 형태로 데이터를 가져오므로 연관 키(
$row['column_name']
)나 숫자 인덱스($row[0]
)를 사용하여 접근할 수 있음. - 여러 가지 플래그 옵션을 사용하여 원하는 형식의 배열을 반환할 수 있음.
💫 fetch_array()
의 옵션(매개변수)
fetch_array()
메서드는 하나의 선택적 인수를 받을 수 있으며, 이 인수를 통해 반환되는 배열 유형지정 가능.
MYSQLI_ASSOC
– 연관 배열(컬럼명을 키로 사용)
$row = $result->fetch_array(MYSQLI_ASSOC);
echo $row['name']; // 연관 키로 접근
MYSQLI_NUM
– 숫자 인덱스 배열(0부터 시작하는 인덱스 사용)
$row = $result->fetch_array(MYSQLI_NUM);
echo $row[0]; // 숫자 인덱스로 접근
MYSQLI_BOTH
(기본값) – 연관 및 숫자 배열 모두 반환
$row = $result->fetch_array(MYSQLI_BOTH);
echo $row['name']; // 연관 키로 접근
echo $row[0]; // 숫자 인덱스로 접근
💫 fetch_array()
와 다른 메서드 비교
메서드 | 설명 | 반환 형식 |
---|---|---|
fetch_array() |
연관 및 숫자 배열 반환 가능 | 배열 |
fetch_assoc() |
연관 배열만 반환(컬럼명을 키로 사용) | 연관 배열(Associative Array) |
fetch_row() |
숫자 인덱스 배열만 반환 | 숫자 배열(Numeric Array) |
fetch_object() |
객체 형태로 반환(속성으로 접근 가능) | 객체(Object) |