Skip to content

Commit

Permalink
Fixed issue #6625: Question type Array not working
Browse files Browse the repository at this point in the history
  • Loading branch information
c-schmitz committed Oct 5, 2012
1 parent aae7df3 commit c2b9603
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 31 deletions.
47 changes: 19 additions & 28 deletions application/helpers/frontend_helper.php
Expand Up @@ -343,32 +343,34 @@ function checkconfield($value)

$scenario = $scenariorow['scenario'];
$currentcfield="";
$query = "SELECT {{conditions}}.*, {{questions}}.type "
$sConditionsQuery1 = "SELECT {{conditions}}.*, {{questions}}.type "
. "FROM {{conditions}}, {{questions}} "
. "WHERE {{conditions}}.cqid={{questions}}.qid "
. "AND {{conditions}}.qid=$value_qid "
. "AND {{conditions}}.scenario=$scenario "
. "AND {{conditions}}.cfieldname NOT LIKE '{%' "
. "ORDER BY {{conditions}}.qid,{{conditions}}.cfieldname";
$result=dbExecuteAssoc($query) or safeDie($query."<br />"); //Checked
$conditionsfound = $result->count();
$oResult1=dbExecuteAssoc($sConditionsQuery1) or safeDie($query."<br />"); //Checked
$aConditionsResult1=$oResult2->readAll(); //Checked
$conditionsfound = count($aConditionsResult1);

$querytoken = "SELECT {{conditions}}.*, '' as type "
$sConditionsQuery2 = "SELECT {{conditions}}.*, '' as type "
. "FROM {{conditions}} "
. "WHERE "
. " {{conditions}}.qid=$value_qid "
. "AND {{conditions}}.scenario=$scenario "
. "AND {{conditions}}.cfieldname LIKE '{%' "
. "ORDER BY {{conditions}}.qid,{{conditions}}.cfieldname";
$resulttoken=dbExecuteAssoc($querytoken) or safeDie($querytoken."<br />"); //Checked
$conditionsfoundtoken = $resulttoken->count();
$oResult2=dbExecuteAssoc($sConditionsQuery2) or safeDie($querytoken."<br />");
$aConditionsResult2=$oResult2->readAll(); //Checked
$conditionsfoundtoken = count($aConditionsResult2);
$conditionsfound = $conditionsfound + $conditionsfoundtoken;

foreach($resulttoken->readAll() as $Condrow)
foreach($aConditionsResult2 as $Condrow)
{
$aAllCondrows[] = $Condrow;
}
foreach($result->readAll() as $Condrow)
foreach($aConditionsResult1 as $Condrow)
{
$aAllCondrows[] = $Condrow;
}
Expand Down Expand Up @@ -1741,27 +1743,15 @@ function buildsurveysession($surveyid,$previewGroup=false)

UpdateSessionGroupList($surveyid, $_SESSION['survey_'.$surveyid]['s_lang']);


// TMSW Conditions->Relevance: Duplicates refactoring of createFieldMap? Conditions tables not needed here.

// Optimized Query
// Change query to use sub-select to see if conditions exist.
$query = "SELECT {{questions}}.*, {{groups}}.*,\n"
." (SELECT count(1) FROM {{conditions}}\n"
." WHERE {{questions}}.qid = {{conditions}}.qid) AS hasconditions,\n"
." (SELECT count(1) FROM {{conditions}}\n"
." WHERE {{questions}}.qid = {{conditions}}.cqid) AS usedinconditions\n"
$sQuery = "SELECT count(*),\n"
." FROM {{groups}} INNER JOIN {{questions}} ON {{groups}}.gid = {{questions}}.gid\n"
." WHERE {{questions}}.sid=".$surveyid."\n"
." AND {{groups}}.language='".$_SESSION['survey_'.$surveyid]['s_lang']."'\n"
." AND {{questions}}.language='".$_SESSION['survey_'.$surveyid]['s_lang']."'\n"
." AND {{questions}}.parent_qid=0\n"
." ORDER BY {{groups}}.group_order,{{questions}}.question_order";

$result = dbExecuteAssoc($query); //Checked

$totalquestions = $result->count();

$totalquestions = Yii::app()->db->createCommand($sQuery)->queryScalar();

// Fix totalquestions by substracting Test Display questions
$iNumberofQuestions=dbExecuteAssoc("SELECT count(*)\n"
Expand Down Expand Up @@ -2242,9 +2232,10 @@ function doAssessment($surveyid, $returndataonly=false)
ORDER BY scope, id";
if ($result = dbExecuteAssoc($query)) //Checked
{
if ($result->count() > 0)
$aResultSet=$result->readAll();
if (count($aResultSet) > 0)
{
foreach($result->readAll() as $row)
foreach($aResultSet as $row)
{
if ($row['scope'] == "G")
{
Expand Down Expand Up @@ -2526,14 +2517,14 @@ function checkQuota($checkaction,$surveyid)
{

// Check the status of the quota, is it full or not
$querysel = "SELECT id FROM {{survey_".$surveyid."}}
$sQuery = "SELECT count(id) FROM {{survey_".$surveyid."}}
WHERE ".implode(' AND ',$querycond)." "."
AND submitdate IS NOT NULL";

$result = dbExecuteAssoc($querysel) or safeDie(); //Checked
$quota_check = $result->readAll();
$iRowCount = Yii::app()->db->createCommand($sQuery)->queryScalar();


if ($result->count() >= $quota['Limit']) // Quota is full!!
if ($iRowCount >= $quota['Limit']) // Quota is full!!

{
// Now we have to check if the quota matches in the current session
Expand Down
2 changes: 1 addition & 1 deletion application/libraries/Save.php
Expand Up @@ -135,7 +135,7 @@ function savedcontrol()
}

$duplicate = Saved_control::model()->findByAttributes(array('sid' => $surveyid, 'identifier' => $_POST['savename']));
if (!empty($duplicate) && $duplicate->count() > 0)
if (!empty($duplicate) && $duplicate->count() > 0) // OK - AR count
{
$errormsg .= $clang->gT("This name has already been used for this survey. You must use a unique save name.")."<br />\n";
return;
Expand Down
Expand Up @@ -81,9 +81,10 @@

$query = "SELECT * FROM {{answers}} WHERE qid='{$qid}' AND language='{$anslang}' and scale_id=$scale_id ORDER BY sortorder, code";
$result = dbExecuteAssoc($query);
$anscount = $result->count();
$aResults= $result->readAll();
$anscount = count($aResults);

foreach ($result->readAll() as $row)
foreach ($aResults as $row)
{
$row['code'] = htmlspecialchars($row['code']);
$row['answer']=htmlspecialchars($row['answer']);
Expand Down

0 comments on commit c2b9603

Please sign in to comment.