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 相关文章推荐
PHP5中MVC结构学习
Oct 09 PHP
php 无极分类(递归)实现代码
Jan 05 PHP
YII实现分页的方法
Jul 09 PHP
php提取字符串中网站url地址的方法
Dec 03 PHP
php简单实现多字节字符串翻转的方法
Mar 31 PHP
深入探究PHP的多进程编程方法
Aug 18 PHP
php实现smarty模板无限极分类的方法
Dec 07 PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 PHP
Yii2.0框架behaviors方法使用实例分析
Sep 30 PHP
laravel 字段格式化 modle 字段类型转换方法
Sep 30 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
Oct 23 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自动反斜杠的函数代码
2010/01/05 PHP
用PHP读取和编写XML DOM的实现代码
2011/02/03 PHP
php实现多张图片上传加水印技巧
2013/04/18 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
详解PHP归并排序的实现
2016/10/18 PHP
PHP等比例压缩图片的实例代码
2018/07/26 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
2016/06/12 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
用原生js做单页应用
2017/01/17 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[44:40]KG vs LGD 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python深入学习之特殊方法与多范式
2014/08/31 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
python正则表达式re之compile函数解析
2017/10/25 Python
python多进程实现进程间通信实例
2017/11/24 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
幼儿教师研修感言
2014/02/12 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
前台文员职责范本
2014/03/07 职场文书
投资合作协议书范本
2014/04/17 职场文书
出国英文推荐信
2014/05/10 职场文书
2014年个人教学工作总结
2014/12/09 职场文书
继续教育个人总结
2015/03/03 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
关于flex 上下文中自动 margin的问题(完整例子)
2021/05/20 HTML / CSS