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 模板高级篇总结
Dec 21 PHP
PHP insert语法详解
Jun 07 PHP
php array_flip() 删除数组重复元素
Jan 14 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
Apr 25 PHP
php google或baidu分页代码
Nov 26 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
Sep 19 PHP
codeigniter框架批量插入数据
Jan 09 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
PHP 常用的header头部定义汇总
Jun 19 PHP
详解PHP swoole process的使用方法
Aug 26 PHP
Yii2结合Workerman的websocket示例详解
Sep 10 PHP
WordPress多语言翻译插件 - WPML使用教程
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
PHP设置一边执行一边输出结果的代码
2013/09/30 PHP
PHP如何将XML转成数组
2016/04/04 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
JQuery之拖拽插件实现代码
2011/04/14 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
js实现带按钮的上下滚动效果
2015/05/12 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
jQuery常用且重要方法汇总
2015/07/13 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
arcgis for js 修改infowindow样式的方法
2016/11/02 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
js判断手机号是否正确并返回的实现代码
2017/01/17 Javascript
浅谈AngularJs 双向绑定原理(数据绑定机制)
2017/12/07 Javascript
详解Node 定时器
2018/02/26 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
详解vue组件中使用路由方法
2019/02/12 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
python实现换位加密算法的示例
2018/10/14 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
pytorch 修改预训练model实例
2020/01/18 Python
jupyter 导入csv文件方式
2020/04/21 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
香港彩色隐形眼镜在线商店:Stunninglens(全球免费送货)
2019/05/10 全球购物
学前教育学生自荐信范文
2013/12/31 职场文书
Ajax异步刷新功能及简单案例
2021/11/20 Javascript