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之第八天
Oct 09 PHP
基于PHP array数组的教程详解
Jun 05 PHP
解析php中获取系统信息的方法
Jun 25 PHP
基于php中使用excel的简单介绍
Aug 02 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
PHP 快速排序算法详解
Nov 10 PHP
培养自己的php编码规范
Sep 28 PHP
PHP使用mkdir创建多级目录的方法
Dec 22 PHP
php代码架构的八点注意事项
Jan 25 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 PHP
PHP数组生成XML格式数据的封装类实例
Nov 10 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 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
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
微信小程序 http请求的session管理
2017/06/07 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
OpenLayers加载缩放控件使用方法详解
2020/09/25 Javascript
Python中的Classes和Metaclasses详解
2015/04/02 Python
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
对python生成业务报表的实例详解
2019/02/03 Python
在Pycharm中使用GitHub的方法步骤
2019/06/13 Python
使用python实现简单五子棋游戏
2019/06/18 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
一个入门级python爬虫教程详解
2021/01/27 Python
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
学习两会精神心得范文
2014/03/17 职场文书
企业宣传标语
2014/06/09 职场文书
学校安全责任书范本
2014/07/23 职场文书
亲属关系公证书样本
2015/01/23 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
原生Javascript+HTML5一步步实现拖拽排序
2021/06/12 Javascript
详解Java实现数据结构之并查集
2021/06/23 Java/Android
把77A收信机改造成收音机
2022/04/05 无线电