如何在SQL二进制树中选择正确的节点


How select the correct node in a SQL binary tree?

我正在用一个20个问题风格的游戏构建一个简单的网页。出现第一个问题,用户回答是或否,进入下一个问题。我不确定如何使用查询指向下一个所需节点。

我有选择答案的单选按钮和提交按钮。我想我需要交出一些带有$_GET的单选按钮的东西,但我真的很挣扎。我假设我需要一种方法来知道用户在哪个节点上查找正确答案节点。

<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="";
$current=1;
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="answerswer" value ="`answerYesID`">yes
        <input type="radio" name="answerswer" value="`answerNoID`">no
        <input type="submit" name="submit" value="submit">
    </form>';
if(isset($_GET['start'])) {
    $where="WHERE `parentID` is NULL";
    output($query, $where, $dbconn);
}
if(isset($_GET['submit']) && $_GET['answer'] == "answerswerYesID") {
    $where="WHERE `nodeID` = ".$_GET['answer'];
    output($query, $where, $dbconn);
}
?>
</body>
</html>

您可以为每个问题提供一个问题ID,并根据该问题ID获取数据
使ID列成为自动更正
使用get方法获取id,for next按钮只增加一个

$next=$_GET['id']+1;

并确保这个数字不超过20(问题数量)

$next%=20;

现在,的动作atribute将是

action="play.php?id=<?php echo $next;?>"