Filling the track_e_exercices.orig_lp_item_view_id field see #3188

skala
Julio Montoya 15 years ago
parent 69d015b384
commit 2d601c19c1
  1. 50
      main/install/update-db-1.8.7-1.8.8.inc.php

@ -245,8 +245,56 @@ if (defined('SYSTEM_INSTALLATION')) {
error_log('Error in '.$query.': '.Database::error());
}
}
}
}
$table_lp_item_view = $row_course['db_name'].".lp_item_view";
$table_lp_view = $row_course['db_name'].".lp_view";
$table_lp_item = $row_course['db_name'].".lp_item";
if ($singleDbForm) {
$table_lp_item_view = "$prefix{$row_course['db_name']}_lp_item_view";
$table_lp_view = "$prefix{$row_course['db_name']}_lp_view";
$table_lp_item = "$prefix{$row_course['db_name']}_lp_item";
}
// Filling the track_e_exercices.orig_lp_item_view_id field in order to have better traceability in exercises included in a LP see #3188
$query = "SELECT DISTINCT path as exercise_id, lp_item_id, lp_view_id, user_id, v.lp_id
FROM $table_lp_item_view iv INNER JOIN $table_lp_view v ON v.id = iv.lp_view_id INNER JOIN $table_lp_item i ON i.id = lp_item_id
WHERE item_type = 'quiz'";
$result = Database::query($query);
if (Database::num_rows($result) > 0) {
while ($row = Database::fetch_array($result,'ASSOC')) {
$sql = "SELECT exe_id FROM $dbNameForm.track_e_exercices
WHERE exe_user_id = {$row['user_id']} AND
exe_cours_id = '{$row_course['code']}' AND
exe_exo_id = {$row['exercise_id']} AND
orig_lp_id = {$row['lp_id']} AND
orig_lp_item_id = {$row['lp_item_id']} ";
$sub_result = Database::query($sql);
$exe_list = array();
while ($sub_row = Database::fetch_array($sub_result,'ASSOC')) {
$exe_list[] = $sub_row['exe_id'];
}
$sql = "SELECT iv.id, iv.view_count
FROM $table_lp_item_view iv INNER JOIN $table_lp_view v ON v.id = iv.lp_view_id INNER JOIN $table_lp_item i ON i.id = lp_item_id
WHERE item_type = 'quiz' AND user_id = {$row['user_id']} AND path = {$row['exercise_id']} ";
$sub_result = Database::query($sql);
$lp_item_view_id_list = array();
while ($sub_row = Database::fetch_array($sub_result,'ASSOC')) {
$lp_item_view_id_list[] = $sub_row['id'];
}
$i = 0;
foreach($exe_list as $exe_id) {
$lp_item_view_id = $lp_item_view_id_list[$i];
$update = "UPDATE $dbNameForm.track_e_exercices SET orig_lp_item_view_id = '$lp_item_view_id' WHERE exe_id = $exe_id ";
Database::query($update);
$i++;
}
}
}
}
}

Loading…
Cancel
Save