完整實現詳細答題結果

This commit is contained in:
2025-09-29 20:53:16 +08:00
parent b56a9d2ab2
commit e5e24d1108
6 changed files with 305 additions and 132 deletions

View File

@@ -0,0 +1,38 @@
const { executeQuery } = require('../lib/database/connection');
async function checkLogicAnswers() {
try {
console.log('=== 檢查 logic_test_answers 表 ===');
const answers = await executeQuery('SELECT * FROM logic_test_answers');
console.log('logic_test_answers 資料總數:', answers.length);
if (answers.length > 0) {
console.log('前3筆資料:', answers.slice(0, 3));
}
console.log('\n=== 檢查 test_results 表 ===');
const results = await executeQuery('SELECT * FROM test_results WHERE type = "logic" ORDER BY created_at DESC LIMIT 5');
console.log('logic test_results 資料總數:', results.length);
if (results.length > 0) {
console.log('前3筆資料:', results);
console.log('\n=== 檢查關聯資料 ===');
for (const result of results.slice(0, 2)) {
console.log(`\n檢查 test_result_id: ${result.id}`);
const relatedAnswers = await executeQuery('SELECT * FROM logic_test_answers WHERE test_result_id = ?', [result.id]);
console.log(`關聯的答案數量: ${relatedAnswers.length}`);
if (relatedAnswers.length > 0) {
console.log('答案資料:', relatedAnswers);
}
}
}
console.log('\n=== 檢查所有 test_results 類型 ===');
const allResults = await executeQuery('SELECT type, COUNT(*) as count FROM test_results GROUP BY type');
console.log('各類型測試結果數量:', allResults);
} catch (error) {
console.error('錯誤:', error.message);
}
}
checkLogicAnswers();

View File

@@ -0,0 +1,66 @@
const { executeQuery } = require('../lib/database/connection');
async function checkSingleTestAnswers() {
console.log('🔍 檢查單一測試類型的答案資料');
console.log('==============================');
try {
// 檢查 test_results 表
console.log('\n📋 Test Results:');
const testResults = await executeQuery('SELECT id, user_id, test_type, score, completed_at FROM test_results ORDER BY completed_at DESC LIMIT 5');
testResults.forEach((result, index) => {
console.log(`測試 ${index + 1}:`, {
id: result.id,
user_id: result.user_id,
test_type: result.test_type,
score: result.score,
completed_at: result.completed_at
});
});
// 檢查 logic_test_answers 表
console.log('\n📋 Logic Test Answers:');
const logicAnswers = await executeQuery('SELECT * FROM logic_test_answers ORDER BY created_at DESC LIMIT 5');
logicAnswers.forEach((answer, index) => {
console.log(`邏輯答案 ${index + 1}:`, {
id: answer.id,
test_result_id: answer.test_result_id,
question_id: answer.question_id,
user_answer: answer.user_answer,
is_correct: answer.is_correct
});
});
// 檢查 creative_test_answers 表
console.log('\n📋 Creative Test Answers:');
const creativeAnswers = await executeQuery('SELECT * FROM creative_test_answers ORDER BY created_at DESC LIMIT 5');
creativeAnswers.forEach((answer, index) => {
console.log(`創意答案 ${index + 1}:`, {
id: answer.id,
test_result_id: answer.test_result_id,
question_id: answer.question_id,
user_answer: answer.user_answer,
score: answer.score
});
});
// 檢查是否有匹配的答案
if (testResults.length > 0) {
const firstTest = testResults[0];
console.log(`\n🔍 檢查測試 ${firstTest.id} 的答案:`);
const matchingLogicAnswers = await executeQuery('SELECT * FROM logic_test_answers WHERE test_result_id = ?', [firstTest.id]);
console.log(`邏輯答案匹配數量: ${matchingLogicAnswers.length}`);
const matchingCreativeAnswers = await executeQuery('SELECT * FROM creative_test_answers WHERE test_result_id = ?', [firstTest.id]);
console.log(`創意答案匹配數量: ${matchingCreativeAnswers.length}`);
}
} catch (error) {
console.error('❌ 檢查失敗:', error.message);
}
console.log('==============================\n');
}
checkSingleTestAnswers();

View File

@@ -0,0 +1,53 @@
const { executeQuery } = require('../lib/database/connection');
async function testDbConnection() {
console.log('🔍 測試資料庫連接和表結構');
console.log('==============================');
try {
// 測試基本連接
console.log('1. 測試基本連接...');
const testQuery = await executeQuery('SELECT 1 as test');
console.log('✅ 資料庫連接成功:', testQuery);
// 檢查所有表
console.log('\n2. 檢查所有表...');
const tables = await executeQuery('SHOW TABLES');
console.log('📋 所有表:', tables.map(t => Object.values(t)[0]));
// 檢查 logic_test_answers 表是否存在
console.log('\n3. 檢查 logic_test_answers 表...');
const tableExists = await executeQuery(`
SELECT COUNT(*) as count
FROM information_schema.tables
WHERE table_schema = DATABASE()
AND table_name = 'logic_test_answers'
`);
console.log('logic_test_answers 表存在:', tableExists[0].count > 0);
// 檢查表結構
console.log('\n4. 檢查 logic_test_answers 表結構...');
const tableStructure = await executeQuery('DESCRIBE logic_test_answers');
console.log('📋 表結構:', tableStructure);
// 檢查資料數量
console.log('\n5. 檢查資料數量...');
const count = await executeQuery('SELECT COUNT(*) as count FROM logic_test_answers');
console.log('📊 logic_test_answers 資料數量:', count[0].count);
// 檢查前幾筆資料
if (count[0].count > 0) {
console.log('\n6. 檢查前 3 筆資料...');
const sampleData = await executeQuery('SELECT * FROM logic_test_answers LIMIT 3');
console.log('📋 範例資料:', sampleData);
}
} catch (error) {
console.error('❌ 測試失敗:', error.message);
console.error('錯誤詳情:', error);
}
console.log('==============================\n');
}
testDbConnection();