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&amp;&amp;mysql)五
Oct 09 PHP
PHP音乐采集(部分代码)
Feb 14 PHP
php获取网页内容方法总结
Dec 04 PHP
php连接mysql数据库代码
Mar 10 PHP
PHP开发不能违背的安全规则 过滤用户输入
May 01 PHP
php模拟post行为代码总结(POST方式不是绝对安全)
Feb 22 PHP
提高PHP编程效率的方法
Nov 07 PHP
php获取URL中带#号等特殊符号参数的解决方法
Sep 02 PHP
PHP中实现获取IP和地理位置类分享
Feb 10 PHP
php通过正则表达式记取数据来读取xml的方法
Mar 09 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
Jun 19 PHP
Laravel学习教程之View模块详解
Sep 18 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
学习js所必须要知道的一些
2007/03/07 Javascript
保证JavaScript和Asp、Php等后端程序间传值编码统一
2009/04/17 Javascript
Js基础学习资料
2010/11/23 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
当某个文本框成为焦点时即清除文本框内容
2014/04/28 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
2015/11/16 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
2016/07/06 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
python+mysql实现简单的web程序
2014/09/11 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
Python实现接受任意个数参数的函数方法
2018/04/21 Python
PyQt5实现拖放功能
2018/04/25 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
python内存动态分配过程详解
2019/07/15 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
Python pymsql模块的使用
2020/09/07 Python
使用SVG实现提示框功能的示例代码
2020/06/05 HTML / CSS
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
网站设计师的岗位职责
2013/11/21 职场文书
毕业生个人求职信范文分享
2014/01/05 职场文书
英文导游欢迎词
2014/01/11 职场文书
竞聘上岗演讲稿
2014/05/16 职场文书
合作协议书模板2014
2014/09/26 职场文书
语文教师求职信范文
2015/03/20 职场文书
Go各时间字符串使用解析
2021/04/02 Golang