X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fsurvey%2Fsurvey.inc.php;h=0c0c645ca5539b0c1758b47d5171af9e3b09e0bf;hb=468c1813bdfc759bed5beba57325ea2e6df6aa2a;hp=91f0505ecc60a8c785215a35648d0a73320202fd;hpb=fb813fb52d5ab65ca9a5b92b5cb9089523380d79;p=platal.git diff --git a/modules/survey/survey.inc.php b/modules/survey/survey.inc.php index 91f0505..0c0c645 100644 --- a/modules/survey/survey.inc.php +++ b/modules/survey/survey.inc.php @@ -104,7 +104,9 @@ class Survey if ((preg_match('#^\d{4}$#', $p) && $p == $promo) || (preg_match('#^\d{4}-$#', $p) && intval(substr($p, 0, 4)) <= $promo) || (preg_match('#^-\d{4}$#', $p) && intval(substr($p, 1)) >= $promo) || - (preg_match('#^\d{4}-\d{4}$#', $p) && intval(substr($p, 0, 4)) <= $promo && intval(substr($p, 5)) >= $promo)) { + (preg_match('#^\d{4}-\d{4}$#', $p) && + (intval(substr($p, 0, 4)) <= $promo && intval(substr($p, 5)) >= $promo || + intval(substr($p, 0, 4)) >= $promo && intval(substr($p, 5)) <= $promo ))) { return true; } } @@ -198,10 +200,9 @@ class Survey } $sql = 'SELECT v.id AS vid, a.question_id AS qid, a.answer AS answer FROM survey_votes AS v - LEFT JOIN survey_answers AS a - ON a.vote_id=v.id + INNER JOIN survey_answers AS a ON a.vote_id=v.id WHERE v.survey_id={?} - ORDER BY vid ASC, qid ASC, answer ASC;'; + ORDER BY vid ASC, qid ASC, answer ASC'; $res = XDB::iterator($sql, $this->id); // retrieves all answers from database $vid = -1; $vid_ = 0; @@ -341,7 +342,7 @@ class Survey return null; } $sql = 'SELECT id, title, end, mode - FROM survey_surveys + FROM surveys WHERE '.$where.' ORDER BY end DESC;'; if ($tpl) { @@ -356,7 +357,7 @@ class Survey public static function retrieveSurvey($sid) { $sql = 'SELECT questions, title, description, end, mode, promos - FROM survey_surveys + FROM surveys WHERE id={?}'; $res = XDB::query($sql, $sid); $data = $res->fetchOneAssoc(); @@ -372,7 +373,7 @@ class Survey public static function retrieveSurveyInfo($sid) { $sql = 'SELECT title, description, end, mode, promos - FROM survey_surveys + FROM surveys WHERE id={?}'; $res = XDB::query($sql, $sid); return $res->fetchOneAssoc(); @@ -410,7 +411,7 @@ class Survey public function updateSurvey() { if ($this->valid) { - $sql = 'UPDATE survey_surveys + $sql = 'UPDATE surveys SET questions={?}, title={?}, description={?}, @@ -433,8 +434,8 @@ class Survey // {{{ functions vote() and hasVoted() : handles vote to a survey public function vote($uid, $args) { - XDB::execute('INSERT INTO survey_votes - SET survey_id={?}, user_id={?};', $this->id, $uid); // notes the user as having voted + XDB::execute('INSERT INTO survey_votes + SET survey_id = {?}, user_id = {?};', $this->id, $uid); // notes the user as having voted $vid = XDB::insertId(); for ($i = 0; $i < count($this->questions); $i++) { $ans = $this->questions[$i]->checkAnswer($args[$i]); @@ -451,9 +452,9 @@ class Survey public function hasVoted($uid) { - $res = XDB::query('SELECT id - FROM survey_votes - WHERE survey_id={?} AND user_id={?};', $this->id, $uid); // checks whether the user has already voted + $res = XDB::query('SELECT id + FROM survey_votes + WHERE survey_id = {?} AND user_id = {?};', $this->id, $uid); // checks whether the user has already voted return ($res->numRows() != 0); } // }}} @@ -462,7 +463,7 @@ class Survey public static function deleteSurvey($sid) { $sql = 'DELETE s.*, v.*, a.* - FROM survey_surveys AS s + FROM surveys AS s LEFT JOIN survey_votes AS v ON v.survey_id=s.id LEFT JOIN survey_answers AS a