function updateCurrentSelection($db) { $email = getCurrentUserEmail($db); $filter = GetConfigPerso ($db, $email, $mode="object"); // For chairs and administrators, the data set is ALL the papers if (minStatus($db, session_id())<3) { $paperSet = "Paper p"; } // On the other hand, the editor should only see HIS papers elseif (minStatus($db, session_id())==3) { $paperSet = "(SELECT * FROM Paper p1, Editor e WHERE p1.id=e.idPaper AND" . "e.emailEditor='$email') as p"; } // The id of the paper has the highest priority, // if set, just return the selected paper if ($filter->spPaperId != 0) { $query = "INSERT INTO CurrentSelection VALUES ('$filter->spPaperId', '$email')"; } else { $query = "SELECT p.id from $paperSet, Author a WHERE p.id=a.id_paper" . " AND (a.first_name like '%$filter->papersWithAuthor%'" . " OR a.last_name like '%$filter->papersWithAuthor%')" . " AND p.title like '%$filter->papersWithTitle%'"; if ($filter->papersUploaded != "A") { $query .= " AND p.isUploaded='$filter->papersUploaded'"; } if ($filter->papersWithStatus != 0) { $query .= " AND p.status='$filter->papersWithStatus'"; } if ($filter->papersWithTopic != 0) { $query .= " AND p.topic='$filter->papersWithTopic'"; } if ($filter->papersCategory != 0) { $query .= " AND p.category='$filter->papersCategory'"; } if ($filter->papersWithMissingReview != "A") { if ($filter->papersWithMissingReview == "Y") { $query = "SELECT id FROM ($query) as t1 WHERE t1.id IN" . " (SELECT idPaper FROM Review WHERE overall IS NULL)"; } elseif ($filter->papersWithMissingReview == "N") { $query = "SELECT id FROM ($query) as t1 WHERE t1.id NOT IN" . " (SELECT idPaper FROM Review WHERE overall IS NULL)"; } } if ($filter->papersWithFilter != 0) { // 1 <-> above if ($filter->papersWithFilter == 1) { // TODO: spRate *M U S T* be a numeric value $query = "SELECT id FROM ($query) as s WHERE s.id IN (SELECT idPaper " . " FROM Review WHERE overall > $filter->papersWithRate)"; } // 2 <-> below elseif ($filter->papersWithFilter == 2) { $query = "SELECT id FROM ($query) as s WHERE s.id IN (SELECT idPaper " . " FROM Review WHERE overall < $filter->papersWithRate)"; } } if ($filter->papersWithEditor != "All") { if ($filter->papersWithEditor == "None") { $query = "SELECT id FROM ($query) AS t2 WHERE t2.id NOT IN" . " (SELECT idPaper FROM Editor)"; } else { $query = "SELECT id FROM ($query) AS t2 WHERE t2.id IN" . " (SELECT idPaper FROM Editor WHERE emailEditor='". "$filter->papersWithEditor')"; } } if ($filter->papersWithReviewer != "All") { if ($filter->papersWithReviewer == "None") { $query = "SELECT id FROM ($query) AS t3 WHERE t3.id NOT IN" . " (SELECT idPaper from Review)"; } else { $query = "SELECT id FROM ($query) AS t3 WHERE t3.id IN" . " (SELECT id FROM Editor WHERE email='". "$filter->papersWithReviewer')"; } } /* LA REQUETE RECURSIVE FONCTIONNE A MERVEILLE. A UTILISER POUR LES REVIEWQUESTIONS ET LES PAPERQUESTIONS $query = "SELECT id_paper FROM PaperAnswer WHERE id_question='$k' AND id_answer='$v'"; while(list($key,$value)=each($arrayTest)) { $query = "SELECT FROM PaperAnswer WHERE id_question='$key'" . " AND id_answer='$value' AND id_paper IN ($query)"; }*/ } }