PHP实现类似题库抽题效果


Posted in PHP onAugust 16, 2018

大家好,我顾某人又回来了,最近学了一点PHP,然后就想写个简单小例子试试,于是就写了一个类似于从题库抽题的东西,大概就是先输入需要抽题的数量,然后从数据库中随机抽取题目。

希望各位大佬轻喷。

假设我现在有这样一个题库:

PHP实现类似题库抽题效果

啊?为什么要用英文?,因为我,,没搞定编码问题?。

接着我来进行抽题:

PHP实现类似题库抽题效果
PHP实现类似题库抽题效果

这样就随机抽出了三道题目。

现在来说说我的思路,希望各位大佬不吝赐教。

首先要实现这个功能,首先我需要三个页面,一个是用户输入页面input.html,一个是后台处理页面select.php,还有一个是错误警告页面error.html(如果用户输入为空,或者输入的抽题数量超过了题库的数量那么就报错),然后是数据库,数据库分为两列,一列是question,用来存放题目,另一列是id,用于标识question

然后对用户的输入进行判断:

PHP实现类似题库抽题效果

input.html页面:

<html>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <form action="select.php" method="get">
    请输入要随机生成的题数:<input type="text" name="input" />
    <input type="submit" name="Submit" value="提交" />
  </form>
</html>

error.html页面:

<html>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <p>您的输入有误,请重新输入!</p>
</html>

select.php页面:

<?php
  header("Content-type:text/html;charset=utf8");
  $connect=new mysqli('localhost','wy','000000','test');
  if(!$connect){
    die("数据库连接失败!");
  }              //连接数据库
  $sql="select id from test";
  $result=$connect->query($sql);
  $array=array();
  $i=0;
  while($row=$result->fetch_row()){
    foreach($row as $val){
      $array[$i]=$val; 
      $i ++;
    }
  }             //将题目id存放进一个数组array
  $input=$_GET['input'];  //接受用户的输入
  if(empty($input) || $input>count($array)){ //判断用户的输入是否为空或输入大于题库数量
    header("Location:error.html");  //输入有误重定向到错误提示页面
  }else{
    shuffle($array);  //将存放题目id的数组进行随机排序
    $k=0;        //用于取出rand数组中question时的id
    for($j=0;$j<$input;$j++){
      $rand=array_slice($array,0,$input);   //从数组的第一个数开始,取出用户输入数量个id存放进一个数组
      $sql2="select * from test where id='{$rand[$k]}'"; //查找rand数组中每一个id对应的question
      $result2=$connect->query($sql2);  //存放mysql语句返回的结果集
      while($row2=$result2->fetch_assoc()){
        echo $row2['question'];   //返回question对应的内容
        echo '<br />';
      }
      $k++;
    }
    $result2->free();  //释放内存
  }
  $result->free();    //释放内存
  $connect->close();   //关闭连接
?>

总结

以上所述是小编给大家介绍的PHP实现类似题库抽题效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP4在WinXP下IIS和Apache2服务器上的安装实例
Oct 09 PHP
在PHP3中实现SESSION的功能(三)
Oct 09 PHP
function.inc.php超越php
Dec 09 PHP
PHP编实现程动态图像的创建代码
Sep 28 PHP
PHP5中新增stdClass 内部保留类
Jun 13 PHP
PHP获取http请求的头信息实现步骤
Dec 16 PHP
ThinkPHP标签制作教程
Jul 10 PHP
PHP分页类集锦
Nov 18 PHP
YII框架中使用memcache的方法详解
Aug 02 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
PHP封装XML和JSON格式数据接口操作示例
Mar 06 PHP
php实现的rc4加密解密类定义与用法示例
Aug 16 #PHP
Laravel框架实现定时发布任务的方法
Aug 16 #PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
Aug 16 #PHP
Laravel中的chunk组块结果集处理与注意问题
Aug 15 #PHP
PHP curl批处理及多请求并发实现方法分析
Aug 15 #PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
Aug 15 #PHP
php使用curl获取header检测开启GZip压缩的方法
Aug 15 #PHP
You might like
MySql 按时间段查询数据方法(实例说明)
2008/11/02 PHP
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
PHP使用逆波兰式计算工资的方法
2015/07/29 PHP
PHP类的特性实例分析
2016/09/28 PHP
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
jcrop基本参数一览
2013/07/16 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
2014/06/27 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
vue点击标签切换选中及互相排斥操作
2020/07/17 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
Python实现购物车功能的方法分析
2017/11/10 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
python3实现字符串操作的实例代码
2019/04/16 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
python制作简单五子棋游戏
2019/06/18 Python
python用match()函数爬数据方法详解
2019/07/23 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
安全演讲稿大全
2014/05/09 职场文书
员工趣味活动方案
2014/08/27 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
幼儿教师个人总结
2015/02/05 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python
你真的会用Mysql的explain吗
2022/03/31 MySQL