2013-05-09 4 views
0

현재 symfony2.2 프레임 워크에서 api를 만드는 중입니다.PHP의 트리 구조에서 데이터 검색

데이터베이스에서 많은 질문과 답변을 검색해야합니다. 다음은 위의 그림에서

Question: (questionId,questionText) 
AnswerOption: (id,questionId,option,nextQuestionId) 

2 개 선택 A1 및 A2를 가지고 하나 개의 루트 질문이 다음과 같이

       Q1 
          /\ 
          A1 A2 
          /  \ 
          Q2  Q3 
         /| \ /| | \ 
         A3 A4 A5 A6 A7 A8 A9 
         / | 
         Q4 Q2 ... 

내 DB 구조입니다.

A1을 선택하면 사용자는 Q2로 리디렉션되어야합니다.

참고 : 사용자가 모든 질문에 대답하지 않을 수 있습니다.

1 :

지금 내가하는 가장 좋은 방법을 찾을 필요가 데이터베이스에서 데이터를 검색합니다.

2 : Json 파일의 질문 형식을 지정하십시오.

+0

당신은 아마 여기서 문제가 하나 개의 질문이 여러 옵션 .. – Kickstart

답변

0

확인. 먼저 a1과 a2에 대한 키를 데이터베이스에서 가져 와서 저장 한 후 선택에 따라 다른 테이블의 데이터를 검색하고 ID (A1과 A2에서 선택한 ID)를 일치시키고 선택 ID와 일치하는 데이터를 검색 한 다음 그렇게하십시오. 등등.

0
<?php 
    if(!empty($_POST) { 
     $nextQues = "SELECT * from Question WHERE id = '" . $_POST['next_ques_id'] . "'"; 
     $nxtAnswers = "SELECT * from AnswerOption WHERE questionId = '" . $_POST['next_ques_id'] . "'"; 
    } 
?> 

// in view, loop through $nxtAnswers and assign $nxtAnswers['nextQuestionId'] to input 
<?php foreach ($nxtAnswers as $ans): ?> 
    <input type="radio" name="next_ques_id" value="<?=$nxtAnswers['nextQuestionId']?>"><?=$ans['option']?></input> 
<?php endforeach; ?> 
0

나는 문서의 메인/서브 제목에 대한 트리 구조의이 종류를 수행했다.

재귀 함수를 사용하여 다음 질문을 검색 할 수 있습니다. 재귀 함수 내부에서 검색 할 질문 수를 관리 할 수 ​​있습니다.

제안 : 테이블 구조로

, 두 개의 테이블을 사용하고 있습니다. 하나의 표를 사용하여 질문을 할 수 있으며 선택 표를 사용하여 답변을 얻을 수 있습니다. 다음 질문은 또 다른 질문이기 때문에. 즉, 질문에 대한 일대일 일대일 관계가 있음을 의미합니다.

Tables: 
question : (id,optionId,questionText, nextQuestionId) 
pk - id 
foreign key - optionId 

option: (id, optionText, questionId) 
foreign key - questionId 
PK - id 

나는 이것이 당신에게 도움이 될 것이라고 생각합니다.

이 게시물은 또한 당신에게 유용합니다.

Understanding Recursion in PHP/mysql

+0

에서 중첩 된 세트 모델을 사용해야합니다. 다른 테이블을 사용하여 옵션을 저장하십시오. 이렇게. 옵션 : (id, optionText, questionId) – user1584103

+0

예를 가지고 있다는 것입니다 MySQL을 – cha