PHP在线考试#confusee

时间:2017-02-04 21:03:51

标签: php mysql sql ajax html5

我正在开展一个与urrrh有关的项目在线考试,我正处于项目中间,我感到很困惑

这就是

我希望从数据库加载的问题已经完成,

我在数据库中创建了一个名为question_number

的列

因此,我必须插入50个问题,即1-50

在插入问题之后我将不得不将它们取出来,我这样做,然后我就把它们拿出来了。

这是我困惑的地方

所有问题都已解决,所有按钮都正常工作

  

我如何回应数据库中的第一个问题,成为页面上的第一个问题

     

当从按钮点击第二个问题时,我希望它显示在同一页面上

     

之后,当所有这些都被设置并且在问题和选项出来之后

当用户选择一个选项或回答一个特定问题并点击另一个问题编号并加载时,我将如何存储问题,直到用户点击最终提交所有按钮,它将提交所有已回答的问题

这是我正在使用的代码。

<?php 
$query = "SELECT * FROM year2011 WHERE subject_cat = 'English' AND question_number = '1' ORDER BY question_number ASC"; 
$result = $con->query($query) or die(mysqli_error($con)); 
$rows = $result->num_rows; 
while($res = $result->fetch_assoc()): ?> 
    <h4><?php echo $res["question_text"]; ?></h4>
    <p> <label><input type="radio" id="english_option" name="english_option" value="<?= $res['option_a']; ?>">&nbsp;&nbsp;<?= $res['option_a']; ?></label><br/> 
    <label><input type="radio" id="english_option2" name="english_option" value="<?= $res['option_b']; ?>">&nbsp;&nbsp;<?= $res['option_b']; ?></label><br/> 
    <label><input type="radio" id="english_option3" name="english_option" value="<?= $res['option_c']; ?>">&nbsp;&nbsp;<?= $res['option_c']; ?></label><br/>
    <label><input type="radio" id="english_option4" name="english_option" value="<?= $res['option_d']; ?>">&nbsp;&nbsp;<?= $res['option_d']; ?></label><br/> </p>
    <?php $query = "SELECT * FROM year2011 WHERE subject_cat = 'English' ORDER BY question_number ASC"; 
    $result = $con->query($query) or die(mysqli_error($con)); 
    $rows = $result->num_rows; 
    while($res = $result->fetch_assoc()){ 
        if($res['question_number'] == 1) { ?> 
            <button class='btn btn-group'><?=$res['question_number']; ?></button> <?php
        }else { ?> 
            <button class='btn btn-group btn-success'><?=$res['question_number']; ?></button><?php 
        } 
     } 
endwhile;?>

1 个答案:

答案 0 :(得分:0)

我看了一眼,这部分看起来不正确

<?=$res['question_number']; ?> 

在你的if语句中。应该是

<?php echo $res['question_number']; ?>

你的else语句和单选按钮的问题相同。 同样在if语句中,您需要运行intval()函数以将字符串转换为int。 intval($res['question_number'])

这段代码可以解决问题。

<?php 
$query = "SELECT * FROM year2011 WHERE subject_cat = 'English' AND question_number = '1' ORDER BY question_number ASC"; 
$result = $con->query($query) or die(mysqli_error($con)); 
$rows = $result->num_rows; 
while($res = $result->fetch_assoc()): ?> 
<h4><?php echo $res["question_text"]; ?></h4>
<p> <label><input type="radio" id="english_option" name="english_option" value="<?php echo $res['option_a']; ?>">&nbsp;&nbsp;<?php echo $res['option_a']; ?></label><br/> 
<label><input type="radio" id="english_option2" name="english_option" value="<?php echo $res['option_b']; ?>">&nbsp;&nbsp;<?php echo $res['option_b']; ?></label><br/> 
<label><input type="radio" id="english_option3" name="english_option" value="<?php echo $res['option_c']; ?>">&nbsp;&nbsp;<?php echo $res['option_c']; ?></label><br/>
<label><input type="radio" id="english_option4" name="english_option" value="<?php echo $res['option_d']; ?>">&nbsp;&nbsp;<?php echo $res['option_d']; ?></label><br/> </p>
<?php $query = "SELECT * FROM year2011 WHERE subject_cat = 'English' ORDER BY question_number ASC"; 
$result = $con->query($query) or die(mysqli_error($con)); 
$rows = $result->num_rows; 
while($res = $result->fetch_assoc()){ 
    if(intval($res['question_number']) == 1) { ?> 
        <button class='btn btn-group'><?php echo $res['question_number']; ?></button> <?php
    }else { ?> 
        <button class='btn btn-group btn-success'><?php echo $res['question_number']; ?></button><?php 
    } 
 } 
endwhile;?>

其余代码看起来很好。