사용자 입력의 예 또는 아니오 응답에 따라 자체 참조 테이블에서 노드를 선택할 수 있어야합니다. 그것은 생물을 추측하는 게임입니다. "where parentID IS NULL"을 사용하여 첫 번째 노드를 선택할 수 있습니다. 사용자가 선택하는 두 개의 그룹화 된 라디오 버튼이 있고 제출 버튼이 응답을 보내기 위해 사용되는 경우 양식 작업은 GET입니다. 나는 내가 현재 nodeID를 가지고 있고 라디오 버튼을 기반으로 표시 할 필요가있는 운동을해야한다는 것을 알고있다. 그러나 이것이 내가 붙어있는 곳이다.사용자 선택에 따라 이진 트리를 어떻게 트래버스합니까?
내 테이블 구조는 다음과 같습니다 nodeID
, parentID
, answerYesID
, answerNoID
, message
. 해당되는 경우 parentID, answerYesId 및 answerNoID는 모두 동일한 테이블의 nodeID를 참조합니다. 첫 번째 노드는 부모 ID에 NULL을 가지고 있으며, 응답 인 모든 노드는 answerID에 NULL을 가지고 있습니다.
현재 '예'라디오 버튼에는 answerYesID
, '아니오'라디오 버튼에는 answerNoID
이 있습니다. 나는 이것에 너무 많은 시간을 넣었고 모든 도움이 가장 감사하게 될 것입니다.
<form action="play.php" method="GET">
<input type="submit" name="start" value="start game">
</form>
<?php
$query = "SELECT `message`, `parentID`,`answerYesID`, `answerNoID`, `nodeID` FROM `creature`";
$where = "";
function output($query,$where,$dbconn){
$result = mysqli_query($dbconn, $query.$where);
while($row = mysqli_fetch_assoc($result)) {
echo("<tr>
<td>{$row['message']}</td>
</tr><br>");
echo"</table>";
}
}
echo'
<form action="play.php" method="GET">
<input type="radio" name="answer" value =`answerYesID`>yes
<input type="radio" name="answer" value=`answerNoID`>no
<input type="submit" name="submit" value="submit">
</form>';
if (isset($_GET['start'])){
$where = "WHERE `parentID` is NULL";
output($query,$where,$dbconn);
}
$current = &_GET['nodeID'];
if (isset($_GET['submit'])){
if (isset($_GET['answer'])){
$where = "WHERE `nodeID` ='" . $current. "'";
echo 'yes';
output($query, $where, $dbconn);
}
}
?>
</body>
</html>
제대로 작동하지 않는 기능은 무엇입니까? – Skewled
어떤 노드가 현재 노드인지 검색하는 방법과 라디오 버튼을 사용하여 다음 nodeID를 제공하는 방법을 모르겠습니다. – user3519506