Files

85 lines
2.3 KiB
PHP

<?php
header('Content-Type: application/json; charset=utf-8');
require_once '../../bbs/db_conn.php';
// PDO 연결 생성
$pdo = db_conn();
try {
// 寃€???뚮씪誘명꽣 諛쏄린
$belong_comp = $_GET['belong_comp'] ?? '';
$working_comp = $_GET['working_comp'] ?? '';
$member_id = $_GET['member_id'] ?? '';
$name = $_GET['name'] ?? '';
$dept_name = $_GET['dept_name'] ?? '';
$auth_level = $_GET['auth_level'] ?? '';
// SQL 荑쇰━ 以€鍮?
$sql = "
SELECT
u.member_id,
u.name,
u.dept_name,
u.rank_name,
u.auth_level,
COALESCE(c1.code_name, u.belong_comp) AS belong_comp_name,
COALESCE(c2.code_name, u.working_comp) AS working_comp_name,
fn_get_code_name(u.auth_level) AS auth_level_name
FROM edu_users u
LEFT JOIN edu_codes c1 ON c1.group_code = 'CO100' AND c1.code = u.belong_comp
LEFT JOIN edu_codes c2 ON c2.group_code = 'CO100' AND c2.code = u.working_comp
WHERE 1=1
";
$params = [];
$types = '';
if (!empty($belong_comp)) {
$sql .= " AND u.belong_comp = ?";
$params[] = $belong_comp;
$types .= 's';
}
if (!empty($working_comp)) {
$sql .= " AND u.working_comp = ?";
$params[] = $working_comp;
$types .= 's';
}
if (!empty($member_id)) {
$sql .= " AND u.member_id LIKE ?";
$params[] = '%' . $member_id . '%';
$types .= 's';
}
if (!empty($name)) {
$sql .= " AND u.name LIKE ?";
$params[] = '%' . $name . '%';
$types .= 's';
}
if (!empty($dept_name)) {
$sql .= " AND u.dept_name LIKE ?";
$params[] = '%' . $dept_name . '%';
$types .= 's';
}
if (!empty($auth_level)) {
$sql .= " AND u.auth_level = ?";
$params[] = $auth_level;
$types .= 's';
}
$sql .= " ORDER BY u.name ASC";
$stmt = $pdo->prepare($sql);
if (!empty($params)) {
$stmt->execute($params);
} else {
$stmt->execute();
}
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode(['success' => true, 'users' => $users], JSON_UNESCAPED_UNICODE);
} catch (Exception $e) {
echo json_encode(['success' => false, 'message' => $e->getMessage()], JSON_UNESCAPED_UNICODE);
}
?>