Reputation: 867
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.
Upvotes: 0
Views: 483
Reputation: 6356
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),
)
);
Upvotes: 3