使用MySQL在php中制作测验游戏

使用MySQL在php中制作测验游戏

<?php
        $connection=mysql_connect('localhost','root',"");
        if(!$connection)
        {
            die("database connection failed".mysql_error());
        }
        $db_select=mysql_select_db("quiz_game",$connection);
        if(!$db_select)
        {
            die("database connection failed".mysql_error());
        }
        if(!isset($_POST['submit']))
        {
            echo "<form method=\"post\" action=\"air.php\">";
            $sub_result=mysql_query("SELECT * from questions where category='air' order by rand() limit 0,5",$connection);
            if(!$sub_result)
            {
                die("database query failed". mysql_error());
            }

            while ($sub_row=mysql_fetch_array($sub_result))
            {
                $id=$sub_row["qno"];
                $question=$sub_row["question"];
                $option1=$sub_row["option1"];
                $option2=$sub_row["option2"];
                $option3=$sub_row["option3"];
                $option4=$sub_row["option4"];
                $answer=$sub_row["answer"];

                echo "<h3>Q".$id." :".$question."</br></h3>";
                echo"</br>
                    $option1
                    <input type= radio name=\"{$id}\" value=\"{$option1}\" >
                    </br>
                    $option2
                    <input type= radio name=\"{$id}\" value=\"{$option2}\">
                    </br>
                    $option3
                    <input type= radio name=\"{$id}\" value=\"{$option3}\">
                    </br>
                    $option4
                    <input type= radio name=\"{$id}\" value=\"{$option4}\">
                    </br></br>";
            }
            echo"<input type='submit' value='see how you did it' name='submit'>";
            echo"</form>";

        }


            if(isset($_POST['submit']))
            {

            $total=0;
            $answer=mysql_query("select qno,answer from questions",$connection);
            while($ans=mysql_fetch_assoc($answer))
            {
                if($_POST[$ans['qno']]==$ans['answer'])
                {
                    $total++;
                }
                else
                {
                }
            }
            echo"<p align=center><b>you scored $total</b>";
            }
     ?>


问题是,即使我没有选择单个单选按钮,它也会给我$ result作为2。当数据库中只有5个问题时,就没有问题,但是当我向查询中添加150个问题并添加了随机函数时,它创建了问题。提前感谢

最佳答案

在您的检查中-

$_POST[$ans['qno']]==$ans['answer']


如果POST中没有数据并且$ ans ['answer'] = 0,则返回true。因此,您需要将此代码更改为

$_POST[$ans['qno']]===$ans['answer']


希望它能工作

关于php - 使用MySQL在php中制作测验游戏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6508660/

10-10 03:21