Files
edu/bbs/myclass/_back/_tmp_data_connection.php
T

91 lines
3.8 KiB
PHP

<?php
/**
* 마이클래스 데이터 연결 진단
*/
header('Content-Type: text/html; charset=utf-8');
require_once __DIR__ . '/db_conn.php';
$pdo = db_conn();
echo '<h1>마이클래스 데이터 연결 진단</h1>';
echo '<style>
body { font-family: Arial; margin: 20px; }
table { border-collapse: collapse; margin: 20px 0; width: 100%; }
th, td { border: 1px solid #ccc; padding: 8px; text-align: left; }
th { background: #f0f0f0; }
.ok { color: green; }
.err { color: red; }
.warn { color: orange; }
</style>';
// 1. edu_learning_goals 현황
echo '<h2>1. 학습목표 현황 (edu_learning_goals)</h2>';
$goals = $pdo->query("SELECT * FROM edu_learning_goals ORDER BY goal_code")->fetchAll();
echo '<table><tr><th>goal_code</th><th>title</th><th>quarter</th><th>is_active</th></tr>';
foreach ($goals as $g) {
echo "<tr><td>{$g['goal_code']}</td><td>{$g['title']}</td><td>{$g['quarter']}</td><td>{$g['is_active']}</td></tr>";
}
echo '</table>';
echo "<p>총 {$goals} 개 목표</p>";
// 2. edu_contents 샘플 (영상 리스트)
echo '<h2>2. 콘텐츠 현황 (edu_contents)</h2>';
$contents = $pdo->query("SELECT * FROM edu_contents LIMIT 20")->fetchAll();
echo '<table><tr><th>content_id</th><th>title</th><th>category_group</th><th>content_url</th></tr>';
foreach ($contents as $c) {
echo "<tr><td>{$c['content_id']}</td><td>{$c['title']}</td><td>{$c['category_group']}</td><td>" . substr($c['content_url'], 0, 50) . "...</td></tr>";
}
echo '</table>';
echo "<p>총 " . $pdo->query("SELECT COUNT(*) FROM edu_contents")->fetchColumn() . " 개 영상</p>";
// 3. edu_goal_contents 현황
echo '<h2>3. 목표-콘텐츠 매핑 현황 (edu_goal_contents)</h2>';
$goalContents = $pdo->query("SELECT COUNT(*) FROM edu_goal_contents")->fetchColumn();
if ($goalContents > 0) {
$rows = $pdo->query("SELECT * FROM edu_goal_contents LIMIT 20")->fetchAll();
echo '<table><tr><th>goal_code</th><th>content_id</th><th>sort_order</th><th>is_active</th></tr>';
foreach ($rows as $r) {
echo "<tr><td>{$r['goal_code']}</td><td>{$r['content_id']}</td><td>{$r['sort_order']}</td><td>{$r['is_active']}</td></tr>";
}
echo '</table>';
} else {
echo '<p class="warn">⚠ 데이터 없음 - 맵핑이 필요합니다</p>';
}
// 4. edu_user_learning_goals 현황
echo '<h2>4. 사용자 목표 선택 (edu_user_learning_goals)</h2>';
$userGoals = $pdo->query("SELECT COUNT(*) FROM edu_user_learning_goals")->fetchColumn();
if ($userGoals > 0) {
$rows = $pdo->query("SELECT * FROM edu_user_learning_goals LIMIT 20")->fetchAll();
echo '<table><tr><th>member_id</th><th>goal_code</th><th>quarter</th><th>selected_at</th></tr>';
foreach ($rows as $r) {
echo "<tr><td>{$r['member_id']}</td><td>{$r['goal_code']}</td><td>{$r['quarter']}</td><td>{$r['selected_at']}</td></tr>";
}
echo '</table>';
} else {
echo '<p class="warn">⚠ 데이터 없음 - 사용자가 아직 목표를 선택하지 않았습니다</p>';
}
// 5. 액션 아이템
echo '<h2>5. 필요한 작업</h2>';
echo '<ol>';
echo '<li>✗ edu_goal_contents에 goal_code ↔ content_id 맵핑 데이터 INSERT</li>';
echo '<li>✓ myclass_list.php: 사용자 선택 목표 조회 로직</li>';
echo '<li>✓ myclass_list.php: edu_goal_contents에서 6개 영상 조회 로직</li>';
echo '<li>✓ goal-layer.php: 목표 선택 모달 이벤트 처리</li>';
echo '<li>✓ 새 API 또는 기존 API: 목표 선택 저장 (edu_user_learning_goals)</li>';
echo '</ol>';
// 6. 권장 맵핑 규칙
echo '<h2>6. 맵핑 규칙 (제안)</h2>';
echo '<pre>';
echo "각 goal_code마다 6개의 content_id 할당:
- 2026-001: content_id 1~6
- 2026-002: content_id 7~12
- 2026-003: content_id 13~18
- ...등등 (content_id가 있는 범위 내에서 균등 분배)
또는 현재 content_id 수에 따라 동적으로 분배
";
echo '</pre>';
?>