0

I am working in yii. I have controller function as-

public function actiongetPublicQuestion()
{
    $model=new Qbquestion();
    $new = Yii::app()->db->createCommand()->select('max(tranId)')->from('qbpublicuserquestion')->queryScalar();
    $CurrentQuestionId=Qbpublicuserquestion::model()->findByPk($new);
    $currentQuestion=Qbquestion::model()->findByPk($CurrentQuestionId->questionId);
    echo "Currently displayed question is=".$currentQuestion->question."</Br>";
//  $answer=Qbquestionoption::model()->findAllByAttributes(array('questionId'=>$currentQuestion1->questionId));



    $old = Yii::app()->db->createCommand()->select('max(tranId-1)')->from('qbpublicuserquestion')->queryScalar();
    $PreviousQuestionId=Qbpublicuserquestion::model()->findByPk($old);
    $currentQuestion1=Qbquestion::model()->findByPk($PreviousQuestionId->questionId);
    echo "previously displayed question is=".$currentQuestion1->question;
    $answer=Qbquestionoption::model()->findAllByAttributes(array('questionId'=>$currentQuestion1->questionId));

    foreach($answer as $ans)
    {
    //  var_dump($ans);

        if($ans->isAnswer==1)
        {
            echo "</br>"."correct Answer is=".$ans->option."with optionId=".$ans->optionId;
            $true=$ans->option;
            echo "</br>";
            echo "{'questions':[".CJSON::encode(array("question"=>$currentQuestion1->question,"answer"=>$true,"question1"=>$currentQuestion->question))."] }";
        }
    }
}

So i am retriving two questions from database such a way that last entry of table is currently displayed question and second last entry is previouly displayed question. i want to publish answer of previously displayed question also. I am sending this information in json encoded format. i want output in format=

"Questions": [
    {"question": "Who is the prime minister of india?","answer":"Manmohan sinh"},
    {"question": "2 when who will win the test?"},
]

But when i am using same variable in CJSON::encode(array("question"=>$currentQuestion1->question,"answer"=>$true,"question"=>$currentQuestion->question))."] }";},its giving only one quetion if we use same variable in encoded cjson array. So how to get required output.

1 Answer 1

3

As the output you want has two JSON objects (i.e. two items in curly braces), the data structure you pass to CJSON::encode needs to be an array of objects or arrays, i.e.:

CJSON::encode(array(array("question"=>$currentQuestion1->question,"answer"=>$true), 
                    array("question"=>$currentQuestion->question),
                    )
            );
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.