2012-12-31 4 views
0

저는 yii에서 일하고 있습니다. 필요한 형식으로 json 출력을 얻는 방법

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))."] }"; 
     } 
    } 
} 

그래서 내가 데이터베이스에서 두 가지 질문 테이블의 마지막 항목은 현재 previouly 질문을 표시 질문 번째 마지막 항목이 표시되는 방식을 가져 오는 중 오류입니다 AS-I는 컨트롤러 기능을 가지고있다. 이전에 표시된 질문에 대한 답변을 게시하고 싶습니다. 이 정보는 json 인코딩 형식으로 보내고 있습니다. 내가 형식으로 출력을 원하는 =

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

하지만 CJSON에서 같은 변수를 사용하고 때 :: 인코딩을 (배열 ("질문"=> $ currentQuestion1-> 질문에 "대답을"=>는, "질문이 $ true "=> $ currentQuestion-> question))."]} ";}, 우리는 인코딩 된 cjson 배열에서 같은 변수를 사용한다면 단 하나의 계기를 제공합니다. 그래서 필요한 출력을 얻는 방법. 원하는 출력은 두 JSON 개체 (중괄호 즉 두 항목)는 CJSON 전달할 데이터 구조를 가지고 있기

답변

3

는 : 인코딩 오브젝트 또는 어레이, 즉 :

CJSON::encode(array(array("question"=>$currentQuestion1->question,"answer"=>$true), 
        array("question"=>$currentQuestion->question), 
        ) 
      ); 
배열 될 필요
관련 문제