当客户端按下按钮时,PHP中的计数器


counter in php when client press button

我在php中有这部分代码。当玩家按下按钮在客户端(使用ajax)我想我的数据库显示下一个记录。但我不会。

if(isset($_POST['req'])){
$counter++;
$sql = "SELECT question FROM mytable WHERE id = $counter";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
    echo $row["id"]." ". $row["question"]. " " . "<br>";
}
} else {
 echo "0 results";
}
}

我建议将计数器存储在会话中。然后每次玩家做这个动作时,你可以给他们下一行,像这样:-

session_start();

if(isset($_POST['req'])){
    if ( ! isset($_SESSION['counter']) ) {
        $_SESSION['counter'] = 1;
    } else {
        $_SESSION['counter'] = $_SESSION['counter'] + 1;
    }
    $sql = "SELECT question FROM mytable WHERE id = {$_SESSION['counter']}";
    $result = $conn->query($sql);
    if ( ! $result ) {
        // log error to error log
        error_log(print_r($conn->errorinfo(),true), 3, 'app_error.log');
        echo "Temporary database issues, please try again later";
        header('Location: error_page.php');
        exit;
    }
    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        echo $row["id"]." ". $row["question"]. " " . "<br>";
    } else {
        echo "0 results";
    }
}

简单的方法是在Ajax请求中发送当前id。增加它,然后使用它从数据库中提取下一个问题