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制作静态网站的模板框架(一)
Oct 09 PHP
利用PHP制作简单的内容采集器的原理分析
Oct 01 PHP
php切割页面div内容的实现代码分享
Jul 31 PHP
PHP header()函数常用方法总结
Apr 11 PHP
PHP实现图片压缩的两则实例
Jul 19 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
php将html转成wml的WAP标记语言实例
Jul 08 PHP
PHP抽奖算法程序代码分享
Oct 08 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
Oct 22 PHP
解析 thinkphp 框架中的部分方法
May 07 PHP
Laravel自动生成UUID,从建表到使用详解
Oct 24 PHP
php 文件上传至OSS及删除远程阿里云OSS文件
Jul 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
让你的网站首页自动选择语言转跳
2006/12/06 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
PHP的拦截器实例分析
2014/11/03 PHP
Yii操作数据库实现动态获取表名的方法
2016/03/29 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
Node.js编码规范
2014/07/14 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
jquery网页加载进度条的实现
2017/06/01 jQuery
微信小程序倒计时功能实例代码
2018/07/17 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
python实现12306火车票查询器
2017/04/20 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
Python 列表的清空方式
2020/01/13 Python
python实现简单井字棋游戏
2020/03/04 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
大学生就业推荐信范文
2013/11/29 职场文书
新学期标语
2014/06/30 职场文书
个人收入证明范本
2014/09/18 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
Python基础之条件语句详解
2021/06/16 Python
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle
vue elementUI批量上传文件
2022/04/26 Vue.js