Skip to content

Commit

Permalink
Fix #04347: Survey Crash by usage of Array Dual Scale
Browse files Browse the repository at this point in the history
git-svn-id: file:///Users/Shitiz/Downloads/lssvn/source/limesurvey@8736 b72ed6b6-b9f8-46b5-92b4-906544132732
  • Loading branch information
David Olivier committed May 20, 2010
1 parent 3f00c5d commit 54217e8
Showing 1 changed file with 45 additions and 23 deletions.
68 changes: 45 additions & 23 deletions qanda.php
Expand Up @@ -417,40 +417,63 @@ function setman_questionandcode_multiscale($ia)
global $dbprefix, $connect;
$qquery = "SELECT other FROM {$dbprefix}questions WHERE qid=".$ia[0]." AND language='".$_SESSION['s_lang']."'";
$qresult = db_execute_assoc($qquery); //Checked
while ($qrow = $qresult->FetchRow()) {$other = $qrow['other'];}
$ansquery = "SELECT * FROM {$dbprefix}answers WHERE qid={$ia[0]} AND language='".$_SESSION['s_lang']."' ORDER BY sortorder, answer";
$ansresult = db_execute_assoc($ansquery); //Checked

$lquery = "SELECT q.qid FROM {$dbprefix}labels l, {$dbprefix}questions q WHERE l.lid = q.lid AND q.qid=".$ia[0]." AND l.language='".$_SESSION['s_lang']."' AND q.language='".$_SESSION['s_lang']."'";
$labelsresult = db_execute_assoc($lquery); //Checked
$labelscount = $labelsresult->RowCount();

$lquery1 = "SELECT q.qid FROM {$dbprefix}labels l, {$dbprefix}questions q WHERE l.lid = q.lid1 AND q.qid=".$ia[0]." AND l.language='".$_SESSION['s_lang']."' AND q.language='".$_SESSION['s_lang']."'";
$labelsresult1 = db_execute_assoc($lquery1); //Checked
$labelscount1 = $labelsresult1->RowCount();

while ($ansrow = $ansresult->FetchRow())
while ($qrow = $qresult->FetchRow())
{
if ($labelscount > 0)
{
$mandatorys[]=$ia[1].$ansrow['code']."#0";
$other = $qrow['other'];
}

// Get Subquestions
$subquery="SELECT * "
."FROM {$dbprefix}questions "
."WHERE parent_qid={$ia[0]} "
."AND language='".$_SESSION['s_lang']."' "
."ORDER BY question_order, "
."question";
$subresult = db_execute_assoc($subquery); //Checked

// Get Answer Scale 1
$ans1query="SELECT qid "
."FROM {$dbprefix}answers "
."WHERE qid={$ia[0]} "
."AND scale_id=0 "
."AND language='".$_SESSION['s_lang']."' "
."ORDER BY sortorder, answer";
$ans1result = db_execute_assoc($ans1query); //Checked
$ans1count = $ans1result->RowCount();

// Get Answer Scale 2
$ans2query="SELECT qid "
."FROM {$dbprefix}answers "
."WHERE qid={$ia[0]} "
."AND scale_id=1 "
."AND language='".$_SESSION['s_lang']."' "
."ORDER BY sortorder, answer";
$ans2result = db_execute_assoc($ans2query); //Checked
$ans2count = $ans2result->RowCount();

while ($subrow = $subresult->FetchRow())
{
// first answer set
if ($ans1count > 0)
{
$mandatorys[]=$ia[1].$subrow['title']."#0";
$mandatoryfns[]=$ia[1];
}
else
{
$mandatorys[]=$ia[1].$ansrow['code'];
$mandatorys[]=$ia[1].$subrow['title'];
$mandatoryfns[]=$ia[1];
}
// second label set

if ($labelscount1 > 0)

// second answer set
if ($ans2count > 0)
{
$mandatorys[]=$ia[1].$ansrow['code']."#1";
$mandatorys[]=$ia[1].$subrow['title']."#1";
$mandatoryfns[]=$ia[1];
}
else
{
$mandatorys[]=$ia[1].$ansrow['code'];
$mandatorys[]=$ia[1].$subrow['title'];
$mandatoryfns[]=$ia[1];
}
}
Expand All @@ -460,7 +483,6 @@ function setman_questionandcode_multiscale($ia)
$mandatorys[]=$ia[1]."other";
$mandatoryfns[]=$ia[1];
}

return array($mandatorys, $mandatoryfns);
}

Expand Down

0 comments on commit 54217e8

Please sign in to comment.