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网站备份程序代码分享
Jun 10 PHP
PHP下判断网址是否有效的代码
Oct 08 PHP
PHP判断数据库中的记录是否存在的方法
Nov 14 PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 PHP
PHP调用Linux命令权限不足问题解决方法
Feb 07 PHP
php实现从上传文件创建缩略图的方法
Apr 02 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
Mar 18 PHP
Linux下编译redis和phpredis的方法
Apr 07 PHP
PHP实现上传多图即时显示与即时删除的方法
May 09 PHP
PHP迭代器接口Iterator用法分析
Dec 28 PHP
详细解读php的命名空间(一)
Feb 21 PHP
PHP常见字符串操作函数与用法总结
Mar 04 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
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
php读取xml实例代码
2010/01/28 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
php连接sftp的作用以及实例代码
2019/09/23 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
jQuery中Datatables增加跳转到指定页功能
2017/02/08 Javascript
AngularJS获取json数据的方法详解
2017/05/27 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
Python生成数字图片代码分享
2017/10/31 Python
python3 对list中每个元素进行处理的方法
2018/06/29 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
pandas DataFrame运算的实现
2020/06/14 Python
Python timeit模块原理及使用方法
2020/10/10 Python
pandas数据分组groupby()和统计函数agg()的使用
2021/03/04 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
大学生校园创业计划书
2014/02/08 职场文书
多媒体教室标语
2014/06/26 职场文书
校本课程教学计划
2015/01/19 职场文书
MySQL基础(一)
2021/04/05 MySQL