Repository navigation
Expand file tree
/
Copy pathtest_db_error.php
More file actions
85 lines (74 loc) · 2.91 KB
/
Copy pathtest_db_error.php
File metadata and controls
85 lines (74 loc) · 2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
// Script para testear específicamente el error "Error reading from database"
require_once('../../config.php');
require_login();
global $DB, $USER;
echo "<h2>Test específico: Error reading from database</h2>";
echo "<p>Usuario actual: {$USER->firstname} {$USER->lastname} (ID: {$USER->id})</p>";
// Test 1: Verificar si las tablas existen
echo "<h3>1. Verificación de tablas VPL:</h3>";
$tables = ['vpl', 'vpl_submissions', 'course'];
foreach ($tables as $table) {
try {
$count = $DB->count_records($table);
echo "<p>✅ Tabla {$table}: {$count} registros</p>";
} catch (Exception $e) {
echo "<p>❌ Error en tabla {$table}: " . $e->getMessage() . "</p>";
}
}
// Test 2: Probar la consulta problemática paso a paso
echo "<h3>2. Test de consulta get_student_available_vpls:</h3>";
// Versión original (que puede fallar)
echo "<h4>Consulta original:</h4>";
$sql_original = "
SELECT DISTINCT
v.id,
v.name,
v.course,
c.fullname as coursename,
COUNT(s.id) as submission_count,
MAX(s.datesubmitted) as last_submission
FROM {vpl} v
JOIN {course} c ON c.id = v.course
JOIN {vpl_submissions} s ON s.vpl = v.id
WHERE s.userid = :userid
GROUP BY v.id, v.name, v.course, c.fullname
ORDER BY last_submission DESC
";
try {
$results = $DB->get_records_sql($sql_original, ['userid' => $USER->id]);
echo "<p>✅ Consulta original exitosa: " . count($results) . " resultados</p>";
foreach ($results as $result) {
echo "<p>- VPL: {$result->name} (Entregas: {$result->submission_count})</p>";
}
} catch (Exception $e) {
echo "<p>❌ Error en consulta original: " . $e->getMessage() . "</p>";
// Test de consulta simplificada
echo "<h4>Intentando consulta simplificada:</h4>";
$sql_simple = "
SELECT v.id, v.name, COUNT(s.id) as submission_count
FROM {vpl} v
JOIN {vpl_submissions} s ON s.vpl = v.id
WHERE s.userid = :userid
GROUP BY v.id, v.name
";
try {
$simple_results = $DB->get_records_sql($sql_simple, ['userid' => $USER->id]);
echo "<p>✅ Consulta simplificada exitosa: " . count($simple_results) . " resultados</p>";
} catch (Exception $e2) {
echo "<p>❌ Error en consulta simplificada: " . $e2->getMessage() . "</p>";
}
}
// Test 3: Probar el servicio completo
echo "<h3>3. Test del servicio get_student_vpls:</h3>";
try {
$vpls = \local_aistrix\services\vpl_service::get_student_available_vpls();
echo "<p>✅ Servicio exitoso: " . count($vpls) . " VPLs encontrados</p>";
} catch (Exception $e) {
echo "<p>❌ Error en servicio: " . $e->getMessage() . "</p>";
}
// Test 4: Verificar logs recientes
echo "<h3>4. Información de debug:</h3>";
echo "<p>Revisa los logs de error de PHP para ver mensajes de AISTRIX DEBUG</p>";
echo "<p>Ubicación típica: /var/log/apache2/error.log o /var/log/nginx/error.log</p>";
?>