<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 파일로 데이터 쓰기 수정입니다.