thinkphp关于考生信息相关统计
来源:互联网 发布:女狙击手知乎 编辑:程序博客网 时间:2024/05/16 17:30
最近做的系统里面需要统计,写了一个案例,方便自己以后查看
相关数据表和字段名:
1.考生信息表(tb_examinee)
主键
1:普高
2:职高5examyearint非空考试年份6intent1varchar(50)非空第一志愿7intent2varchar(50) 第二志愿8ispassint非空审核状态
0:未通过审核
1:通过审核9isregisterint 报道状态
0:未报到
1:报到10scorefloat(5,2) 成绩11intervarchar(50)非空录取专业12statusint非空是否被禁用
-1:被删除
0:禁用
1:正常使用
2.招生计划详情(tb_plan)
-1:被删除
0:禁用
1:正常使用
因为统计的东西比较多,所以单独写了一个类文件
在Application/Admin/下---->新建Login文件夹---->新建ExamineeLogic.class.php类(类名必须对应一张数据表,即文件名为某张数据表的名字)
ExamineeLogic.class.php
该类的命名空间和继承:
<?phpnamespace Admin\Logic;use Think\Model;class ExamineeLogic extends Model{ /** 年份详情 **/public function getExamyear(){ $Examinee=M('Examinee'); $condition['status']=1; //正常使用 $examyear=$Examinee->distinct(true)->field('examyear')->where($condition)->order('eid asc')->select(); foreach($examyear as $v){$examyearsArr[]=$v['examyear']; } return $examyearsArr;}/** 专业详情**/public function getMajorInfo(){ $Plan=M('Plan'); if($search_text=I("search_text")){//接收查询信息 $condition['major']=array("like","%$search_text%");//模糊查询 } $condition['status']=1; //正常使用 $majorInfo=$Plan->distinct(true)->field('major')->where($condition)->order('pid asc')->select(); return $majorInfo;}/** 组建查询方法 @inter 专业 @examyear 年份 @type @category 普高|职高 == 1|2 **/public function getMajorCounts($inter,$examyear,$type,$category){ $Examinee=M('Examinee'); $conditions['status']=1; //正常使用 switch($type){ case 1: //报名总人数 $condition1['intent1']=$inter; $condition1['examyear']=$examyear; $condition1['category']=$category; $conditions=$condition1; break; case 2: //通过审核数 $condition2['intent1']=$inter; $condition2['examyear']=$examyear; $condition2['category']=$category; $condition2['ispass']=1; $conditions=$condition2; break; case 3: //已报到的人数 $condition3['intent1']=$inter; $condition3['examyear']=$examyear; $condition3['category']=$category; $condition3['isregister']=1; $conditions=$condition3; break; case 4: //录取的人数 $condition4['inter']=$inter; $condition4['examyear']=$examyear; $condition4['category']=$category; $conditions=$condition4; break; } $examineeCounts=$Examinee->where($conditions)->count(); return $examineeCounts; }/** 普高职高计划人数 @inter 专业 @examyear 年份 @type @return nums 返回人数**/public function getMajorNums($inter,$examyear,$type){$Plan=M('Plan');$condition['status']=1;$condition['major']=$inter;$condition['examyear']=$examyear;switch($type){ case 1: //普高计划人数 $nums=$Plan->where($condition)->getField('num1'); break; case 2: //职高计划人数 $nums=$Plan->where($condition)->getField('num2'); break; }return $nums;} /** 统计各专业人数并封装数组**/ public function getExamineeCountsArr(){ $majorArr=$this->getMajorInfo(); $examyearArr=$this->getExamyear();$i=0;foreach($majorArr as $value){ $arr[$i]['major']=$value['major']; //专业 foreach($examyearArr as $v){ //年份 $arr[$i][$v]['nums1']=$this->getMajorNums($value['major'],$v,1); //普高计划人数 $arr[$i][$v]['nums2']=$this->getMajorNums($value['major'],$v,2); //职高计划人数 $arr[$i][$v]['nums3']=$this->getMajorCounts($value['major'],$v,1,1); //报名总人数 普高 $arr[$i][$v]['nums4']=$this->getMajorCounts($value['major'],$v,1,2); //报名总人数 职高 $arr[$i][$v]['nums5']=$this->getMajorCounts($value['major'],$v,2,1); //通过审核总人数 普高 $arr[$i][$v]['nums6']=$this->getMajorCounts($value['major'],$v,2,2); //通过审核总人数 职高 $arr[$i][$v]['nums7']=$this->getMajorCounts($value['major'],$v,3,1); //已报到人数 普高 $arr[$i][$v]['nums8']=$this->getMajorCounts($value['major'],$v,3,2); //已报到人数 职高 $arr[$i][$v]['nums9']=$this->getMajorCounts($value['major'],$v,4,1); //录取总人数 普高 $arr[$i][$v]['nums10']=$this->getMajorCounts($value['major'],$v,4,2); //录取总人数 职高 } $i++;} return $arr;}}?>SubtotalController.class.php
该控制器调用以上统计的方法:
/*** 专业人数统计,包括入学性质***/public function majorCounts() $ExamineeLogic=D("Examinee","Logic"); $this->assign('examineeCountsArr',$ExamineeLogic->getExamineeCountsArr()); $this->display("Subtotal/majorCounts");}
majorCounts.html
模板页输出:
<table class="table table-bordered table-striped" id="table-info"> <thead><tr><th rowspan="2">序号</th><th rowspan="2">专业</th><th colspan="5" class="year">2016(普高|职高)</th><th colspan="5" class="year">2017(普高|职高)</th></tr> <tr><th class="planNum">计划数</th><th class="regNum">报名人数</th><th class="ispassNum">通过审核人数</th><th class="isregisterNum">已报到的人数</th><th class="enrollNum">录取人数</th> <th class="planNum">计划数</th><th class="regNum">报名人数</th><th class="ispassNum">通过审核人数</th><th class="isregisterNum">已报到的人数</th><th class="enrollNum">录取人数</th> </tr> </thead> <tbody> <volist name="examineeCountsArr" id="vo"> <tr> <td>{$i}</td> <td>{$vo.major}</td> <td class="planNum">{$vo[2016].nums1}|{$vo[2016].nums2}</td> <td class="regNum">{$vo[2016].nums3}|{$vo[2016].nums4}</td> <td class="ispassNum">{$vo[2016].nums5}|{$vo[2016].nums6}</td> <td class="isregisterNum">{$vo[2016].nums7}|{$vo[2016].nums8}</td> <td class="enrollNum">{$vo[2016].nums9}|{$vo[2016].nums10}</td> <td class="planNum">{$vo[2017].nums1}|{$vo[2017].nums2}</td> <td class="regNum">{$vo[2017].nums3}|{$vo[2017].nums4}</td> <td class="ispassNum">{$vo[2017].nums5}|{$vo[2017].nums6}</td> <td class="isregisterNum">{$vo[2017].nums7}|{$vo[2017].nums8}</td> <td class="enrollNum">{$vo[2017].nums9}|{$vo[2017].nums10}</td> </tr> </volist> </tbody></table>
阅读全文
0 0
- thinkphp关于考生信息相关统计
- Informix相关统计信息
- PGA统计信息相关
- mysql统计信息相关
- 统计cpu相关信息
- CBO相关原理--统计信息
- MySQL统计信息相关参数
- 查询统计相关java进程相关信息
- 查询对象统计信息相关SQL
- linux虚拟内存相关信息统计工具vmstat
- oracle优化器统计信息相关
- MySQL中的统计信息相关参数介绍
- Oracle 统计信息的相关操作
- 统计学生成绩信息并按要求输出相关信息
- 利用WinInet查询考生信息[WEB实例]
- 震惊!130万研究生考生信息泄露!
- 关于广告系统信息统计的解决方案
- 11g 关于自动搜集统计信息
- 代码优化, volatile关键字
- input.py
- 一个简单的Httpserver以及获取post提交的参数
- Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- Bat命令学习
- thinkphp关于考生信息相关统计
- Windows下Python3.5安装Numpy、Scipy
- Java学习笔记(二十七):阿里巴巴java开发手册阅读笔记
- 实现无限极分类的一个类、以及统计每个等级有多少的个数(存在父子级关系的字段)
- Ubuntu下安装及卸载JDK
- tomcat部署项目,如何去掉项目名
- 怎么快速集成 Android 热修复 Tinker Gradle Plugin
- yii入口文件笔记
- JAVA回调机制(CallBack) 趣解