prepare("CALL proc_get_code_list('CA100')"); $catsStmt->execute(); $categories = $catsStmt->fetchAll(); $catsStmt->closeCursor(); // 분기(quarter) 목록을 edu_codes 에서 desc01 기준으로 조회합니다. // desc01 = 'CA10001' 인 코드들을 분기 코드로 사용합니다. $qtStmt = $pdo->prepare("SELECT base_code AS code, code_name AS name FROM edu_codes WHERE desc01 = 'CA10001'"); $qtStmt->execute(); $quarters = $qtStmt->fetchAll(PDO::FETCH_ASSOC); $qtStmt->closeCursor(); // 키워드(KW100) 목록을 프로시저를 통해 DB에서 조회합니다. $keywordsStmt = $pdo->prepare("CALL proc_get_code_list('KW100')"); $keywordsStmt->execute(); $keywords = $keywordsStmt->fetchAll(PDO::FETCH_ASSOC); $keywordsStmt->closeCursor(); $goalNosStmt = $pdo->prepare("CALL proc_get_code_list('GN100')"); $goalNosStmt->execute(); $goalNos = $goalNosStmt->fetchAll(PDO::FETCH_ASSOC); $goalNosStmt->closeCursor(); // 인사이트 이슈구분(IS100) 목록을 사전 준비합니다. $is100Stmt = $pdo->prepare("CALL proc_get_code_list('IS100')"); $is100Stmt->execute(); $issueTypesIS = $is100Stmt->fetchAll(PDO::FETCH_ASSOC); $is100Stmt->closeCursor(); // 리더십 이슈구분(LD100) 목록을 사전 준비합니다. $ld100Stmt = $pdo->prepare("CALL proc_get_code_list('LD100')"); $ld100Stmt->execute(); $issueTypesLD = $ld100Stmt->fetchAll(PDO::FETCH_ASSOC); $ld100Stmt->closeCursor(); // 기본 선택될 카테고리 코드를 결정합니다. '마이클래스'를 찾으면 우선 적용합니다. $defaultCatCode = null; foreach ($categories as $c) { if ($c['name'] === '마이클래스') { $defaultCatCode = $c['code']; break; } } // '마이클래스'가 없으면 첫 번째 카테고리를 기본값으로 사용합니다. if ($defaultCatCode === null && count($categories) > 0) { $defaultCatCode = $categories[0]['code']; } // GET 파라미터로 넘겨받은 검색 조건(카테고리, 검색어)을 변수에 저장합니다. $category = isset($_GET['category']) ? $_GET['category'] : 'CA10006'; $q = isset($_GET['q']) ? trim($_GET['q']) : ''; // 쿼리 바인딩을 위한 파라미터 배열과 WHERE 조건 배열을 초기화합니다. $params = []; $where = []; // 카테고리 검색 조건이 '전체'가 아닐 경우 조건절에 추가합니다. if ($category !== '' && $category !== '전체') { $where[] = 'category_code = :category'; $params[':category'] = $category; } // 텍스트 검색어가 있을 경우 제목(title) 부분 일치 조건(LIKE)을 추가합니다. if ($q !== '') { $where[] = 'title LIKE :q'; $params[':q'] = '%' . $q . '%'; } // 메인 콘텐츠 리스트를 조회하기 위한 기본 SQL 쿼리입니다. // 서브쿼리를 사용해 카테고리명, 중분류명, 연결된 학습목표명을 함께 가져옵니다. $sql = 'SELECT c.content_id, c.category_code, c.category_group, c.title, c.is_offer, c.is_active, c.sort_order, c.description,c.description1, c.description2, c.description3, c.content_url, c.goal_code, c.issue_type_code, c.offer_id, c.start_date, (SELECT COUNT(*) FROM edu_content_keywords ck WHERE ck.content_id=c.content_id AND ck.is_active=\'1\') as keyword_count, (SELECT code_name FROM edu_codes WHERE group_code=\'CA100\' AND base_code=c.category_code LIMIT 1) as cat_name, (SELECT code_name FROM edu_codes WHERE group_code=\'CA200\' AND base_code=c.category_group LIMIT 1) as group_name, (SELECT title FROM edu_learning_goals WHERE goal_code=c.goal_code LIMIT 1) as goal_title, (SELECT code_name FROM edu_codes WHERE group_code=\'IS100\' AND base_code=c.issue_type_code LIMIT 1) as issue_type_name FROM edu_contents c'; // WHERE 조건이 하나라도 있다면 조합하여 SQL문에 덧붙입니다. if ($where) { $sql .= ' WHERE ' . implode(' AND ', $where); } // 정렬 순서를 지정합니다. $sql .= ' ORDER BY c.category_code , c.category_group ,c.goal_code, c.content_id DESC'; // 완성된 쿼리를 실행하여 결과($rows)를 가져옵니다. $stmt = $pdo->prepare($sql); $stmt->execute($params); $rows = $stmt->fetchAll(); ?>

콘텐츠 입력

No 콘텐츠ID 카테고리 카테고리구분 콘텐츠명 콘텐츠설명 URL 키워드 사용여부 관리
등록된 콘텐츠가 없습니다
-