登录
首页 >  数据库 >  MySQL

php+mysql开发一个最简单的在线题库,在线做题系统!

来源:SegmentFault

时间:2023-02-17 11:31:33 112浏览 收藏

小伙伴们对数据库编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《php+mysql开发一个最简单的在线题库,在线做题系统!》,就很适合你,本篇文章讲解的知识点主要包括MySQL、html、PHP。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

题库,对于教育机构,学校,在线教育,是很有必要的,网上也有不少的第三方在线题库系统,但是本次案例,会让有需要的人了解题库的开发思路,其实很简单,无非就是一个表单验证,数据库验证。

1、先构建表单数据
2、把表单数据通过get或者post方式提交到表单验证页面,和数据库进行匹配
3、返回结果,答案正确或者错误

构建表单:
index.php



    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><meta name="format-detection" content="telephone=no"><title>题库</title><style type="text/css">
        *{list-style: none;margin:0px;padding: 0px;}
        #tiku{
            width: 300px;
            margin:10px auto;
        }

        #tiku ul li{
            float: left;
        }
    </style><?php //获取数据库配置
require_once("config.php");
//连接数据库
$con = mysql_connect($host,$username,$password);
//设置数据库字符集  
mysql_query("SET NAMES UTF8");
//查询数据库
mysql_select_db($db, $con);
//查询数据库
//获取最新的1条数据
$all = mysql_num_rows(mysql_query("select * from $tb"));
//定义分页所需的参数
$lenght=1;                             //每页显示的数量
@$page=$_GET['page']?$_GET['page']:1;    //当前页
$offset=($page-1)*$lenght;              //每页起始行编号
$allpage=ceil($all/$lenght);            //所有的页数-总数页
$prepage=$page-1;                       //上一页       
if($page==1){
    $prepage=1;                         //特殊的是当前页是1时上一页就是1
    }
$nextpage=$page+1;
if($page==$allpage){
    $nextpage=$allpage;                //特殊的是最后页是总数页时下一页就是总数页
    }
$sql="select * from $tb order by id ASC limit {$offset},{$lenght}";
$rest=mysql_query($sql);
while($row = mysql_fetch_assoc($rest))
    {
        $id = $row["id"];
        $title = $row["title"];
        $A = $row["answer_A"];
        $B = $row["answer_B"];
        $C = $row["answer_C"];
        $D = $row["answer_D"];
        $true = $row["true"];
        $score = $row["score"];
    }
?><div id="tiku">
    <form action="check.php" method="get">
        <p><?php echo $title;?></p>
        &lt;input type=&quot;radio&quot; name=&quot;xuanxiang&quot; value=&quot;&lt;?php echo $A;?&gt;">A:<?php echo $A;?><br>&lt;input type=&quot;radio&quot; name=&quot;xuanxiang&quot; value=&quot;&lt;?php echo $B;?&gt;">B:<?php echo $B;?><br>&lt;input type=&quot;radio&quot; name=&quot;xuanxiang&quot; value=&quot;&lt;?php echo $C;?&gt;">C:<?php echo $C;?><br>&lt;input type=&quot;radio&quot; name=&quot;xuanxiang&quot; value=&quot;&lt;?php echo $D;?&gt;">D:<?php echo $D;?><br><br>&lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&lt;?php echo $id;?&gt;"><button>提交</button>
    </form>
</div>
    <br><?php echo "<div id='tiku'>";
        echo "
"; echo "
"; echo "
"; echo "

共".$allpage."道题,当前是第".$page."题

"; echo "

"; echo "
"; ?>

表单接收
check.php

<?php header("Content-type:text/html;charset=utf-8");
//获取数据库配置
require_once("config.php");
//连接数据库
$con = mysql_connect($host,$username,$password);
//设置数据库字符集  
mysql_query("SET NAMES UTF8");
//查询数据库
mysql_select_db($db, $con);
//获取数据
$xuanxiang = $_GET["xuanxiang"];
$id = $_GET["id"];
if (empty($xuanxiang)) {
    echo "<script>alert('请选择一个答案!');history.go(-1);";
}else{
    //查询数据库
    $result = mysql_query("SELECT * FROM $tb WHERE id =".$id);
    while($row = mysql_fetch_array($result))
    {
        $true = $row["true"];
        $next_id = $id+1;
        if($xuanxiang == $true){
            echo "<script>alert('正确!得5分!');location.href='next.php?page=$next_id';</script>";
        }else{
            echo "<script>alert('错了!扣5分!');history.go(-1);</script>";
        }
    }
}
?>

数据库配置
config.php

<?php //配置文件 - BY TANKING
$host="数据库地址";
$username="账号";
$password="密码";
$db="数据库名";
$tb = "表名";
?>

next.php
下一题



    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><meta name="format-detection" content="telephone=no"><title>题库</title><style type="text/css">
        *{list-style: none;margin:0px;padding: 0px;}
        #tiku{
            width: 300px;
            margin:10px auto;
        }

        #tiku ul li{
            float: left;
        }
    </style><?php //获取数据库配置
require_once("config.php");
//连接数据库
$con = mysql_connect($host,$username,$password);
//设置数据库字符集  
mysql_query("SET NAMES UTF8");
//查询数据库
mysql_select_db($db, $con);
//查询数据库
//获取最新的1条数据
$all = mysql_num_rows(mysql_query("select * from $tb"));
//定义分页所需的参数
$lenght=1;                             //每页显示的数量
@$page=$_GET['page']?$_GET['page']:1;    //当前页
$offset=($page-1)*$lenght;              //每页起始行编号
$allpage=ceil($all/$lenght);            //所有的页数-总数页
$prepage=$page-1;                       //上一页       
if($page==1){
    $prepage=1;                         //特殊的是当前页是1时上一页就是1
    }
$nextpage=$page+1;
if($page==$allpage){
    $nextpage=$allpage;                //特殊的是最后页是总数页时下一页就是总数页
    }
$sql="select * from $tb order by id ASC limit {$offset},{$lenght}";
$rest=mysql_query($sql);
while($row = mysql_fetch_assoc($rest))
    {
        $id = $row["id"];
        $title = $row["title"];
        $A = $row["answer_A"];
        $B = $row["answer_B"];
        $C = $row["answer_C"];
        $D = $row["answer_D"];
        $true = $row["true"];
        $score = $row["score"];
    }
?><div id="tiku">
    <form action="check.php" method="get">
        <p><?php echo $title;?></p>
        &lt;input type=&quot;radio&quot; name=&quot;xuanxiang&quot; value=&quot;&lt;?php echo $A;?&gt;">A:<?php echo $A;?><br>&lt;input type=&quot;radio&quot; name=&quot;xuanxiang&quot; value=&quot;&lt;?php echo $B;?&gt;">B:<?php echo $B;?><br>&lt;input type=&quot;radio&quot; name=&quot;xuanxiang&quot; value=&quot;&lt;?php echo $C;?&gt;">C:<?php echo $C;?><br>&lt;input type=&quot;radio&quot; name=&quot;xuanxiang&quot; value=&quot;&lt;?php echo $D;?&gt;">D:<?php echo $D;?><br><br>&lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&lt;?php echo $id;?&gt;"><button>提交</button>
    </form>
</div>
    <br><?php echo "<div id='tiku'>";
        echo "
"; echo "
"; echo "
"; echo "

共".$allpage."道题,当前是第".$page."题

"; echo "

"; echo "
"; ?>

数据库结构

title --------题目
answer_A -----答案A
answer_B -----答案B
answer_C -----答案C
answer_D -----答案D
true ---------正确答案
score --------得分

clipboard.png

理论要掌握,实操不能落!以上关于《php+mysql开发一个最简单的在线题库,在线做题系统!》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表