Variable Speichern

Hashimura

Grünschnabel
Wie kann ich Variable speichern die nach dem reload gespeichert bleiben.
Ich habe bei meinen Quiz das Problem das ich immer die Selbe Frage bekomme, d.h
die variable bleibt immer gleich, es sollte nach jede Frage um eins erhöht werden.
PHP:
<?php
session_start();

$id = 1;                    // Hier ist das Problem
$id = $id + 1;              //

$sql = "SELECT * FROM quizfragen WHERE ID ='" . $id . "'";
$db_erg = mysqli_query( $db_link, $sql);

    $zeile = mysqli_fetch_array ( $db_erg);
    $fragen        = $zeile['frage'];
    $ant1        = $zeile['ant1'];
    $ant2        = $zeile['ant2'];
    $ant3        = $zeile['ant3'];
    $ant4        = $zeile['ant4'];
    $ant5        = $zeile['ant5'];
    $rant        = $zeile['rant'];
?>
<html>
<head>
<title></title>
</head>
<body>
        <?php 
        if(isset($_POST['question']))
        {
            $pruefeant = "SELECT rant FROM quizfragen WHERE rant = '" . $_POST['question'] . "'";
            $db_ergg = mysqli_query( $db_link, $pruefeant);
            if(mysqli_num_rows($db_ergg) > 0)
            {
                echo ("Die Antwort ist richtig");
            }
            else
            {
                echo ("Die Antwort ist falsch");
            }
            ?>
            <form action="quiz.php" method="POST">
            <input type="submit" name="btn" value="Nächste Frage" >
            </form>
            <?php
        }
        else
        {
            echo $fragen;
            ?>
            <form action="quiz.php" method='POST'>
            <input type='radio' name='question' value='<?php echo $ant1; ?>'><?php  echo $ant1; ?><br>
            <input type='radio' name='question' value='<?php echo $ant2; ?>'><?php  echo $ant2; ?><br>
            <input type='radio' name='question' value='<?php echo $ant3; ?>'><?php  echo $ant3; ?><br>
            <input type='radio' name='question' value='<?php echo $ant4; ?>'><?php  echo $ant4; ?><br>
            <input type='radio' name='question' value='<?php echo $ant5; ?>'><?php  echo $ant5; ?><br>
            <input type='submit' name='auswahl' value='Abschicken'>
            </form>
            <?php 
        } ?>
</body>
</html>
 
Session ist Denke ich mal Deine Lösung.
Du startest ja schon eine, aber nutzt sie nicht.
https://www.php-kurs.com/session-anwenden.htm

Könnte dann so aussehen (ungetestet, habe es einfach aus der verlinkten Seite rauskopiert, damit Du weißt was ich meine, und etwas angepasst):
PHP:
if (!isset($_SESSION['quiz_id'])){
    $_SESSION['quiz_id'] = 1;
}else{
    $_SESSION['quiz_id'] ++;
}

$id = $_SESSION['quiz_id'];
$sql = "SELECT * FROM quizfragen WHERE ID ='" . $id . "'";
 
PHP:
$id = 1;
$id = $id + 1;
Ist Qatsch, die Variable wird sofort um eins erhöht, da kann man auch gleich '$id = 2' schreiben. :p

PHP:
$id=$id+1;
Kann vereinfacht werden zu:
PHP:
$id++;

Hochzählen musst du wenn der Button gedrückt wurde.
 
Zuletzt bearbeitet:
Zurück