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 session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
Nov 27 PHP
PHP执行批量mysql语句的解决方法
May 02 PHP
PHP Global定义全局变量使用说明
Aug 15 PHP
php中读写文件与读写数据库的效率比较分享
Oct 19 PHP
php导出word格式数据的代码实例
Nov 25 PHP
php实现把数组按指定的个数分隔
Feb 17 PHP
php实现的zip文件内容比较类
Sep 24 PHP
php实现读取内存顺序号
Mar 29 PHP
PHP 验证身份证是否合法的函数
Feb 09 PHP
php实现的二叉树遍历算法示例
Jun 15 PHP
PHP两个n位的二进制整数相加问题的解决
Aug 26 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 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/04/27 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
PHP6新特性分析
2016/03/03 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
2016/11/28 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
javascript Math.random()随机数函数
2009/11/04 Javascript
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
JavaScript模块管理的简单实现方式详解
2019/06/15 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
Python多线程编程(五):死锁的形成
2015/04/05 Python
python实现清屏的方法
2015/04/30 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
Funko官方商店:源自美国,畅销全球搪胶收藏玩偶
2018/09/15 全球购物
测绘工程个人的自我评价
2013/11/10 职场文书
矫正人员思想汇报
2014/01/08 职场文书
超市后勤自我鉴定
2014/01/17 职场文书
酒店大堂副理的职责范文
2014/02/13 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
2015年班组工作总结
2015/04/20 职场文书
2015年团队工作总结范文
2015/05/04 职场文书