Как исправить $ t, который не может быть вызван внутри цикла, если в качестве условия? - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть этот код в качестве домашней работы:

<?php
$serverName = "DESKTOP-CKOTFQ9\SQLEXPRESS";
$connectionInfo= array ("Database"=>"buatsoal_db");
$conn= sqlsrv_connect ($serverName,$connectionInfo);

if (!$conn){
        echo "koneksi X";
    }
?>
<?php
    $sql = "SELECT * FROM buatsoal_tb;";
    $query = sqlsrv_query($conn, $sql);
?>
<button type="button" id="start" onclick="mulai()">Mulai</button>
<?php
$i = 0;


while ($row = sqlsrv_fetch_array($query)) {
    if ($row['soal_id'] != 's2') {
        $i++;
        ?>
            <center>
                <div class="soals" hidden>
                    <?php echo $row['soaltxt'];?>
                    <button type="button" id = "lanjut"  class="continue" onclick="lanjut()">Lanjutkan</button>                 
                    <br>
                    <br>
                </div>
            </center>
        <?php
    }
    else {
        ?>
        <div id="done" hidden>
            SELESAI
        </div>
        <?php
    }
}
?>

<script>
    var counter = 1;
    var limit = <?php echo $i; ?>

    function mulai() {
        document.getElementsByClassName("soals")[0].style.display = 'block';
    }

    function lanjut() {
        if (counter !== limit) {
            document.getElementsByClassName("soals")[counter].style.display = 'block';
            counter++;
        } else {
            document.getElementById('done').style.display = 'block';
        }
    }
</script>

Тогда дело в том, что на следующем шаге мне нужно изменить этот код ($row['soal_id'] != 's2'), чтобы он был таким:

<?php
$serverName = "DESKTOP-CKOTFQ9\SQLEXPRESS";
$connectionInfo= array ("Database"=>"buatsoal_db");
$conn= sqlsrv_connect ($serverName,$connectionInfo);

if (!$conn){
        echo "koneksi X";
    }
?>
<?php
    $sql = "SELECT * FROM buatsoal_tb;";
    $query = sqlsrv_query($conn, $sql);
?>
<button type="button" id="start" onclick="mulai()">Mulai</button>
<?php
$i = 0;
$t=2;

while ($row = sqlsrv_fetch_array($query)) {
    if ($row['soal_id'] != 's$t') {
        $i++;
        ?>
            <center>
                <div class="soals" hidden>
                    <?php echo $row['soaltxt'];?>
                    <button type="button" id = "lanjut"  class="continue" onclick="lanjut()">Lanjutkan</button>                 
                    <br>
                    <br>
                </div>
            </center>
        <?php
    }
    else {
        $t++;
        ?>
        <div id="done" hidden>
            SELESAI
        </div>
        <?php
    }

}

?>

<script>
    var counter = 1;
    var limit = <?php echo $i; ?>

    function mulai() {
        document.getElementsByClassName("soals")[0].style.display = 'block';
    }

    function lanjut() {
        if (counter !== limit) {
            document.getElementsByClassName("soals")[counter].style.display = 'block';
            counter++;
        } else {
            document.getElementById('done').style.display = 'block';
        }
    }
</script>

но проблема в том, что когда я его так изменил, вывод игнорирует оператор if ($row['soal_id'] != 's$t')

Выход должен выглядеть так:

enter image description here

И после того, как я изменил его, станьте так:

enter image description here

Это база данных таблиц, которую я использую:

enter image description here

Можете ли вы помочь мне решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...