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 相关文章推荐
php 301转向实现代码
Sep 18 PHP
php输出表格的实现代码(修正版)
Dec 29 PHP
PHP中最容易忘记的一些知识点总结
Apr 28 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
Jan 26 PHP
Destoon模板制作简明教程
Jun 20 PHP
PHP中使用json数据格式定义字面量对象的方法
Aug 20 PHP
CodeIgniter配置之autoload.php自动加载用法分析
Jan 20 PHP
Zend Framework教程之视图组件Zend_View用法详解
Mar 05 PHP
用PHP写的一个冒泡排序法的函数简单实例
May 26 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
php-msf源码详解
Dec 25 PHP
PHP安全之register_globals的on和off的区别
Jul 23 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
《雄兵连》《烈阳天道》真的来了
2020/07/13 国漫
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
9条PHP编程小知识及易犯的小错误
2015/01/22 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
VUE实现可随意拖动的弹窗组件
2018/09/25 Javascript
Element Input组件分析小结
2018/10/11 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
详解vue中v-model和v-bind绑定数据的异同
2020/08/10 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
python简单实现计算过期时间的方法
2015/06/09 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
django自带的server 让外网主机访问方法
2018/05/14 Python
python常用数据重复项处理方法
2019/11/22 Python
Django配置文件代码说明
2019/12/04 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
开学典礼决心书
2014/03/11 职场文书
护士求职自荐信范文
2014/03/19 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
生产操作工岗位职责
2014/09/16 职场文书
个人四风问题原因分析及整改措施
2014/09/28 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书
Redis Cluster集群动态扩容的实现
2021/07/15 Redis