[PHP] 카테고리에 글 개수 추가하기

💫 블로그 카테고리별 글 개수 추가하기

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() 메서드는 하나의 선택적 인수를 받을 수 있으며, 이 인수를 통해 반환되는 배열 유형지정 가능.

  1. MYSQLI_ASSOC – 연관 배열(컬럼명을 키로 사용)
$row = $result->fetch_array(MYSQLI_ASSOC);
echo $row['name'];  // 연관 키로 접근
  1. MYSQLI_NUM – 숫자 인덱스 배열(0부터 시작하는 인덱스 사용)
$row = $result->fetch_array(MYSQLI_NUM);
echo $row[0];  // 숫자 인덱스로 접근
  1. 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)

By Dozzing

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다