我是php的新手,我正在尝试建立一个php测验,该测验从mysql数据库中读取问题和答案。到目前为止,我有以下代码:
require_once("scripts/connect_db.php");
session_start();
$_SESSION['Qid'] = 1;
if (!isset($_POST['answer'])){
$Qid = $_SESSION['Qid'];
echo $Qid;
$stmt = $dbh->prepare("Select * FROM qtable WHERE id = ?");
$stmt->bindParam(1, $Qid);
$stmt->execute();
$result = $stmt->fetchObject();
echo $result->Q . "<br />";
$stmt = $dbh->prepare("SELECT * FROM atable WHERE Qid = ? ORDER BY rand()");
$stmt->bindParam(1, $Qid);
$stmt->execute();
$result = $stmt->fetchAll();
echo "<form action=\"test1.php\" method=\"post\">";
foreach ( $result as $row ) {
if ( $row['correct'] == 1 ){
echo "<input type=\"radio\" name=\"answer\" value=\"1\">" .$row['answer']."<br />";
} else {
echo "<input type=\"radio\" name=\"answer\" value=\"0\">" .$row['answer']."<br />";
}
}
echo "<input type=\"submit\" value=\"next\">";
echo "</form>";
}
else
{
$Qid = $_SESSION['Qid'] + 1;
echo $Qid;
$stmt = $dbh->prepare("Select * FROM qtable WHERE id = ?");
$stmt->bindParam(1, $Qid);
$stmt->execute();
$result = $stmt->fetchObject();
echo $result->Q . "<br />";
$stmt = $dbh->prepare("SELECT * FROM atable WHERE Qid = ? ORDER BY rand()");
$stmt->bindParam(1, $Qid);
$stmt->execute();
$result = $stmt->fetchAll();
echo "<form action=\"test1.php\" method=\"post\">";
foreach ( $result as $row ) {
if ( $row['correct'] == 1 ){
echo "<input type=\"radio\" name=\"answer\" value=\"1\">" .$row['answer']."<br />";
} else {
echo "<input type=\"radio\" name=\"answer\" value=\"0\">" .$row['answer']."<br />";
}
}
echo "<input type=\"submit\" value=\"next\">";
echo "</form>";
}
我的想法是每按一次提交将$ _SESSION ['Qid']递增1,这样我就可以遍历数据库,但到目前为止,我只能上到第二行。任何人都可以在没有Jquery或AJAX的情况下帮助或指导我正确的方法。谢谢
你一直在重置 $_SESSION['Qid'] = 1;
尝试
require_once("scripts/connect_db.php");
session_start();
//$_SESSION['Qid'] = 1;
if(!isset($_SESSION['Qid']) {
$_SESSION['Qid'] = 1;
}
然后在结尾处添加以下内容,将计数器保存回SESSION:
$_SESSION['Qid'] = $Qid;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句