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下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
Sep 19 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
Jun 27 PHP
PHP实现上传文件并存进数据库的方法
Jul 16 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
Mar 06 PHP
php实现微信扫码支付
Mar 26 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 PHP
详解PHP发送邮件知识点
May 06 PHP
php实现的顺序线性表示例
May 04 PHP
TP3.2.3框架文件上传操作实例详解
Jan 23 PHP
基于ThinkPHP删除目录及目录文件函数
Oct 28 PHP
php引用传递
Apr 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
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
php实现表单多按钮提交action的处理方法
2015/10/24 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
基于jQuery的图片大小自动适应实现代码
2010/11/17 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
webpack打包单页面如何引用的js
2017/06/07 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python操作串口的方法
2015/06/17 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
Python读写文件基础知识点
2019/06/10 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
客户服务经理岗位职责
2014/01/29 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
加入学生会自荐书
2015/03/05 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
负责培养人意见
2015/06/05 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
css弧边选项卡的项目实践
2023/05/07 HTML / CSS