Files
kngil_home/kngil/bbs/adm_purch_popup.php
2026-01-30 17:20:52 +09:00

45 lines
1.5 KiB
PHP

<?php
// 1. DB 연결
require_once 'db_conn.php';
header('Content-Type: application/json');
try {
// 클라이언트(JS)로부터 전달받은 검색 조건 (POST 또는 GET 방식에 맞춰 수정)
$p_member_id = $_POST['member_id'] ?? '';
$p_member_nm = $_POST['member_nm'] ?? '';
// 날짜가 빈 값('')으로 오면 반드시 null로 치환해야 PostgreSQL date 타입 에러가 안 납니다.
$p_fbuy_dt = (!empty($_POST['fbuy_dt'])) ? $_POST['fbuy_dt'] : null;
$p_tbuy_dt = (!empty($_POST['tbuy_dt'])) ? $_POST['tbuy_dt'] : null;
// 2. 프로시저 호출 - 파라미터 자리에 ?를 사용합니다.
$stmt = $pdo->prepare("SELECT * FROM kngil.sp_buy_item_history_r(?, ?, ?, ?)");
// 파라미터 순서대로 배열에 담아 실행합니다.
$stmt->execute([
$p_member_id,
$p_member_nm,
$p_fbuy_dt,
$p_tbuy_dt
]);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 3. W2UI를 위해 각 행에 'recid' 필드 강제 주입
$records = [];
foreach ($rows as $row) {
// 복합키(member_id + sp_no)를 조합하여 유일한 recid 생성
$row['recid'] = $row['member_id'] . '_' . $row['sq_no'];
$records[] = $row;
}
// 4. 결과 출력
echo json_encode($records);
} catch (PDOException $e) {
// HTTP 상태 코드를 500으로 설정하여 클라이언트가 에러임을 인지하게 할 수 있습니다.
http_response_code(500);
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
}
?>