【发布时间】:2019-11-19 09:38:21
【问题描述】:
我从 technopoints 获得了这段代码,我想从数据库中获得一个随机问题,但是当我输入 $fetchqry = "SELECT * FROM quiz ORDER BY rand()"; 时我无法解决这个问题,因为 rand(),它没有得到我认为的正确结果。我一直在尝试解决这个问题,但它不起作用,我怎样才能为每个问题添加一个递增的数字?
if (isset($_POST['click']) || isset($_GET['start'])) {
@$_SESSION['clicks'] += 1 ;
$c = $_SESSION['clicks'];
if(isset($_POST['userans'])) { $userselected = $_POST['userans'];
$fetchqry2 = "UPDATE 'quiz' SET 'userans'='$userselected' WHERE 'id'=$c-1";
$result2 = mysqli_query($db,$fetchqry2);
}
} else {
$_SESSION['clicks'] = 0;
}
//echo($_SESSION['clicks']);
?>
<div class="bump"><br><form><?php if($_SESSION['clicks']==0){ ?> <button class="button" name="start" float="left"><span>START QUIZ</span></button> <?php } ?></form></div>
<form action="" method="post">
<table>
<?php if(isset($c)) { $fetchqry = "SELECT * FROM 'quiz' ORDER BY rand()";
$result=mysqli_query($db,$fetchqry);
$num=mysqli_num_rows($result);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC); }
?>
<tr><td><h3><br><?php echo @$row['que'];?></h3></td></tr> <?php if($_SESSION['clicks'] && $_SESSION['clicks']){ ?>
<tr><td><input required type="radio" name="userans" value="<?php echo $row['option 1'];?>"> <?php echo $row['option 1']; ?><br>
<tr><td><input required type="radio" name="userans" value="<?php echo $row['option 2'];?>"> <?php echo $row['option 2'];?></td></tr>
<tr><td><input required type="radio" name="userans" value="<?php echo $row['option 3'];?>"> <?php echo $row['option 3']; ?></td></tr>
<tr><td><input required type="radio" name="userans" value="<?php echo $row['option 4'];?>"> <?php echo $row['option 4']; ?><br><br><br></td></tr>
<tr><td><button class="button3" name="click" >Next</button></td></tr> <?php }
?>
<form>
<?php if($_SESSION['clicks']){
$qry3 = "SELECT 'ans', 'userans' FROM 'quiz';";
$result3 = mysqli_query($db,$qry3);
$storeArray = Array();
while ($row3 = mysqli_fetch_array($result3, MYSQLI_ASSOC)) {
if($row3['ans']==$row3['userans']){
@$_SESSION['score'] += 1 ;
}
}
?>
<h2>Result</h2>
<span>No. of Correct Answer: <?php echo $no = @$_SESSION['score'];
session_unset(); ?></span><br>
<span>Your Score: <?php echo $no*2; ?></span>
<?php } ?>```
【问题讨论】:
-
该代码没有任何 ORDER BY RAND() 查询,如果没有提供真正的代码将无济于事。
-
因为这段代码运行良好但是当我改变这部分时'fetchqry = "SELECT * FROM 'quiz'";并添加 ORDER BY rand() 这是它出错的地方它不再得到正确的答案编辑:我现在改变它只是为了清楚