<div>
	<a href="/board-list-down.php">게시글 리스트 다운로드</a>
</div>

board-list-download.php

require_once("/wp-load.php"); //경로에 맞게 설정

// 데이터베이스 연결
$host = '';
$username = '';
$password = '';
$database = '';

$conn = new mysqli($host, $username, $password, $database);

if ($conn->connect_error) {
	die("데이터베이스 연결 실패: " . $conn->connect_error);
}

ob_start(); // 출력 버퍼링 시작


// SQL 쿼리(게시판id ,엑셀로 받고자 하는 테이블과 컬럼, 데이타항목 설정)
$sql = "SELECT 
			wp_kboard_board_content.member_display, 
			option_phone.option_value AS meta_phone, 
			IFNULL(option_address.option_value, '-') AS address_1,
			DATE_FORMAT(wp_kboard_board_content.`date`, '%Y-%m-%d %H:%i:%s') AS formatted_date
		FROM wp_kboard_board_content
		JOIN (
			SELECT content_uid, option_value
			FROM wp_kboard_board_option
			WHERE option_key = 'meta-phone'
		) AS option_phone ON wp_kboard_board_content.uid = option_phone.content_uid
		LEFT JOIN (
			SELECT content_uid, option_value
			FROM wp_kboard_board_option
			WHERE option_key = '6535f05bd651c_address_1'
		) AS option_address ON wp_kboard_board_content.uid = option_address.content_uid
		WHERE wp_kboard_board_content.board_id = '1' 
		AND wp_kboard_board_content.status != 'trash'
		ORDER BY formatted_date DESC";


// 쿼리 실행
$result = $conn->query($sql);

$data = array();
if ($result->num_rows > 0) {
	while ($row = $result->fetch_assoc()) {
		$data[] = $row;
	}
}

// CSV 파일로 데이터 쓰기
$timestamp = date("Ymd_His"); // 현재 날짜와 시간을 YYYYMMDD_HHiiss 형식으로 가져옴
$csvFileName = 'filename-' . $timestamp . '.csv';

// CSV 열 제목 쓰기
//fputcsv($csvFile, array('member_display', 'date', 'meta-phone', '64f0c2d38d292_address_1'));
fputcsv($csvFile, array('No', 'Name', 'Mobile', 'Address', 'Date'));

// 데이터 쓰기
//$no = 1; // 번호 초기값 설정
$no = count($data); // 역순으로 번호 부여하기 위해 데이터 수를 초기 번호로 설정
foreach ($data as $row_data) {
	
	// 번호 추가
	array_unshift($row_data, $no);

	// 'meta_phone' 값에서 '-'제거
	$row_data['meta_phone'] = str_replace('-', '', $row_data['meta_phone']);
	$row_data['meta_phone'] = '"' . $row_data['meta_phone'] . '"';

	// CSV 파일에 데이터 쓰기
	fputcsv($csvFile, $row_data);

	//$no++; // 다음 번호 증가
	$no--; // 이전 번호로 역순으로 줄여나감
}


// 파일 다운로드

header('Content-Encoding: UTF-8'); // 인코딩 설정 추가
header('Content-Type: application/csv; charset=UTF-8'); // UTF-8로 설정
header('Content-Disposition: attachment; filename="' . $csvFileName . '"');


// 출력 버퍼 비우고 헤더 정보 출력
ob_end_flush();

// CSV 파일로 데이터 쓰기 수정입니다.