Browse Source

Improve queries see BT#12052

jmontoyaa 8 years ago
parent
commit
8cfbb5deb9
1 changed files with 9 additions and 6 deletions
  1. 9 6
      main/exercise/exercise.class.php

+ 9 - 6
main/exercise/exercise.class.php

@@ -690,9 +690,12 @@ class Exercise
 
         // Getting question list from the order (question list drag n drop interface ).
         $sql = "SELECT e.question_id
-                FROM $TBL_EXERCICE_QUESTION e INNER JOIN $TBL_QUESTIONS q
-                    ON (e.question_id= q.id)
-                WHERE e.c_id = {$this->course_id} AND e.exercice_id	= '".Database::escape_string($this->id)."'
+                FROM $TBL_EXERCICE_QUESTION e 
+                INNER JOIN $TBL_QUESTIONS q
+                ON (e.question_id= q.id AND e.c_id = q.c_id)
+                WHERE 
+                    e.c_id = {$this->course_id} AND 
+                    e.exercice_id	= '".Database::escape_string($this->id)."'
                 ORDER BY q.question";
         $result = Database::query($sql);
         $list = array();
@@ -1194,10 +1197,10 @@ class Exercise
             $randomLimit = null;
         }
 
-        // @todo improve this query
         $sql = "SELECT e.question_id
-                FROM $TBL_EXERCISE_QUESTION e INNER JOIN $TBL_QUESTIONS q
-                    ON (e.question_id= q.iid)
+                FROM $TBL_EXERCISE_QUESTION e 
+                INNER JOIN $TBL_QUESTIONS q
+                ON (e.question_id= q.iid AND e.c_id = q.c_id)
                 WHERE e.c_id = {$this->course_id} AND e.exercice_id	= '".Database::escape_string($this->id)."'
                 ORDER BY RAND()
                 $randomLimit ";