Initial commit: 교육 프로젝트 배포

This commit is contained in:
송대일
2026-07-01 18:32:42 +09:00
commit be6dccd120
1483 changed files with 5082202 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
<?php
declare(strict_types=1);
require __DIR__ . '/../db_conn.php';
$pdo = db_conn();
echo "--- SHOW CREATE TABLE ---\n";
$row = $pdo->query('SHOW CREATE TABLE edu_learning_histories')->fetch(PDO::FETCH_ASSOC);
echo ($row['Create Table'] ?? 'N/A') . "\n\n";
echo "--- INDEXES ---\n";
$stmt = $pdo->query('SHOW INDEX FROM edu_learning_histories');
foreach ($stmt as $r) {
echo ($r['Key_name'] ?? ''), "\t",
($r['Seq_in_index'] ?? ''), "\t",
($r['Column_name'] ?? ''), "\t",
((int)($r['Non_unique'] ?? 1) === 0 ? 'UNIQUE' : 'NON_UNIQUE'),
"\n";
}
@@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
require __DIR__ . '/../db_conn.php';
$pdo = db_conn();
$pdo->exec('ALTER TABLE edu_learning_histories DROP PRIMARY KEY, ADD PRIMARY KEY (member_id, sys_comp_code, content_id)');
echo "ALTER_OK\n";
+39
View File
@@ -0,0 +1,39 @@
<?php
header('Content-Type: text/plain; charset=utf-8');
try {
require_once __DIR__ . '/../db_conn.php';
$pdo = db_conn();
$pdo->exec("SET NAMES 'utf8mb4'");
// 1. edu_codes에서 keyword 관련 group_code 확인
echo "=== edu_codes: keyword 관련 group_code 목록 ===\n";
$stmt = $pdo->query("SELECT group_code, COUNT(*) as cnt FROM edu_codes WHERE group_code LIKE '%KW%' OR base_code LIKE 'KW%' GROUP BY group_code");
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $r) {
echo "group_code={$r['group_code']} => {$r['cnt']}\n";
}
echo "\n=== edu_codes: KW로 시작하는 base_code 전체 ===\n";
$stmt = $pdo->query("SELECT group_code, base_code, code_name FROM edu_codes WHERE base_code LIKE 'KW%' ORDER BY group_code, base_code LIMIT 30");
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $r) {
echo "[{$r['group_code']}] {$r['base_code']} => {$r['code_name']}\n";
}
echo "\n=== edu_content_keywords: keyword_code 분포 (상위 10개) ===\n";
$stmt = $pdo->query("SELECT keyword_code, COUNT(*) as cnt FROM edu_content_keywords GROUP BY keyword_code ORDER BY cnt DESC LIMIT 10");
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $r) {
echo "{$r['keyword_code']} => {$r['cnt']}\n";
}
echo "\n=== edu_contents: 전체 / is_offer=1 / is_offer!=1 건수 ===\n";
$total = $pdo->query("SELECT COUNT(*) FROM edu_contents WHERE is_active=1 OR is_active IS NULL")->fetchColumn();
$offer = $pdo->query("SELECT COUNT(*) FROM edu_contents WHERE is_offer=1 AND (is_active=1 OR is_active IS NULL)")->fetchColumn();
$normal = $pdo->query("SELECT COUNT(*) FROM edu_contents WHERE (is_offer IS NULL OR is_offer!=1) AND (is_active=1 OR is_active IS NULL)")->fetchColumn();
echo "전체={$total}, offer(Pick)={$offer}, 일반={$normal}\n";
echo "\n=== 일반 영상 중 keyword 매핑 있는 건수 ===\n";
$cnt = $pdo->query("SELECT COUNT(DISTINCT c.content_id) FROM edu_contents c JOIN edu_content_keywords ck ON ck.content_id=c.content_id WHERE (c.is_offer IS NULL OR c.is_offer!=1) AND (c.is_active=1 OR c.is_active IS NULL)")->fetchColumn();
echo "키워드 매핑 있는 일반 영상={$cnt}\n";
} catch (Exception $e) {
echo "Error: " . $e->getMessage() . "\n";
}
+59
View File
@@ -0,0 +1,59 @@
<?php
header('Content-Type: text/plain; charset=utf-8');
try {
require_once __DIR__ . '/../db_conn.php';
$pdo = db_conn();
$pdo->exec("SET NAMES 'utf8mb4'");
echo "=== 1. edu_codes KW100 키워드 수 ===\n";
$cnt = $pdo->query("SELECT COUNT(*) FROM edu_codes WHERE group_code = 'KW100'")->fetchColumn();
echo "count={$cnt}\n";
echo "\n=== 1b. edu_codes 컬럼 목록 ===\n";
try {
$cols = $pdo->query("SHOW COLUMNS FROM edu_codes")->fetchAll(PDO::FETCH_ASSOC);
foreach ($cols as $c) echo $c['Field'] . " (" . $c['Type'] . ")\n";
} catch (Exception $e) { echo "에러: " . $e->getMessage() . "\n"; }
echo "\n=== 1c. main_data.php 실제 쿼리 테스트 ===\n";
try {
$rows2 = $pdo->query("SELECT base_code AS keyword_code, code_name AS keyword_name FROM edu_codes WHERE group_code = 'KW100' ORDER BY base_code")->fetchAll(PDO::FETCH_ASSOC);
echo count($rows2) . "건 반환\n";
if ($rows2) echo json_encode($rows2[0], JSON_UNESCAPED_UNICODE) . " ...\n";
} catch (Exception $e) { echo "에러: " . $e->getMessage() . "\n"; }
echo "\n=== 1d. sort_order 포함 쿼리 (이전 방식) ===\n";
try {
$rows3 = $pdo->query("SELECT base_code AS keyword_code, code_name AS keyword_name FROM edu_codes WHERE group_code = 'KW100' ORDER BY sort_order, base_code")->fetchAll(PDO::FETCH_ASSOC);
echo count($rows3) . "건 반환 (sort_order 존재)\n";
} catch (Exception $e) { echo "sort_order 없음: " . $e->getMessage() . "\n"; }
echo "\n=== 2. edu_recommend_keywords 테이블 존재 ===\n";
try {
$rows = $pdo->query("SELECT * FROM edu_recommend_keywords LIMIT 5")->fetchAll(PDO::FETCH_ASSOC);
echo count($rows) . "\n";
foreach ($rows as $r) echo json_encode($r, JSON_UNESCAPED_UNICODE) . "\n";
} catch (Exception $e) { echo "없음: " . $e->getMessage() . "\n"; }
echo "\n=== 3. edu_user_keywords 테이블 존재 ===\n";
try {
$cnt2 = $pdo->query("SELECT COUNT(*) FROM edu_user_keywords")->fetchColumn();
echo "count={$cnt2}\n";
} catch (Exception $e) { echo "없음: " . $e->getMessage() . "\n"; }
echo "\n=== 4. CREATE TABLE 권한 테스트 ===\n";
try {
$pdo->exec("CREATE TABLE IF NOT EXISTS _edu_test_create (id INT) ENGINE=InnoDB");
$pdo->exec("DROP TABLE IF EXISTS _edu_test_create");
echo "CREATE 권한 있음\n";
} catch (Exception $e) { echo "CREATE 권한 없음: " . $e->getMessage() . "\n"; }
echo "\n=== 5. 세션 memberId/sysCompCode ===\n";
if (session_status() === PHP_SESSION_NONE) session_start();
$mid = $_SESSION['ss_mb_id'] ?? $_SESSION['member_id'] ?? '(없음)';
$sc = $_SESSION['sys_comp_code'] ?? '(없음)';
echo "member_id={$mid}, sys_comp_code={$sc}\n";
} catch (Exception $e) {
echo "Error: " . $e->getMessage() . "\n";
}