PHP 处理历史数据的伪代码
<?php class a
{
protected static $Senior = [1, 2, 3];
protected static $NoSenior = [13, 14, 15, 16, 17, 18, 19;
/**
* 获取所有在职老师的id
* 根据在职老师去查所匹配的条件
* 根据条件取跟新新的
*/
function run()
{
//获取所有在职老师的id
$sql = "SELECT t.teacher_id FROM teacher t LEFT JOIN teacher_ext te on t.teacher_id = te.id WHERE te.job_status = 1";
$list = M()->all();
//sleep(10);
foreach ($list as $teacher_id) {
//$teacher_id = 22171;
$sql = "SELECT t.teacher_id,t.race_type,lm.is_leader,ttgr.grade_id FROM teacher t
LEFT JOIN 表 te on 条件
LEFT JOIN 表 lm on 条件
LEFT JOIN 表 ttgr on 条件
WHERE t.teacher_id = ? "; $teacherDate = M()->query($sql, $teacher_id)->all();//查询
$endRaceType = $this->tdate($teacherDate);
$res = $this->insertDate($endRaceType, $teacher_id['teacher_id']);
} } /**
* 获取老师的所有类型;
* @param $teacherDate
* @return array
*/
public function tdate($teacherDate)
{
$raceType = [];
foreach ($teacherDate as $val) {
if ($val['is_leader'] == 1) {
if (in_array($val[''], self::Senior)) { } else { }
} else {
if (in_array($val[''], self::$Senior)) { } else { }
//组合所有的授课类型
$raceType[] = $teacherRaceType;
} //合并所有授课类型到一个数组,并去除重复的授课类型;
$race = [];
for ($i = 0; $i < count($raceType); $i++) {
$middle = array_merge($race, $raceType[$i]);
$race = $middle;
}
$endRaceType = array_unique($race);
return $endRaceType;
} /**
* 存入数据库;
* @param $endRaceType
* @param $teacher_id
*/
public function insertDate($endRaceType, $teacher_id)
{
foreach ($endRaceType as $v) { //添加到数据库
$m = M()->begin();
try {
M()->insert(['teacherId' => $teacher_id, 'raceType' => $v]);
$m->end(true);
} catch (\Exception $e) {
$m->end(false);
MSVC::log( $e->getMessage());
}
}
sleep(10);
} }
PHP 处理历史数据的伪代码的更多相关文章
- 从AdventureWorks学习数据库建模——保留历史数据
在业务需求中,经常需要我们在系统中能够记录历史信息,能够查看到历史变动情况,这时我们可以通过增加开始结束时间字段来记录数据的历史版本.对数据的历史记录主要分为:关系.属性历史,实体历史和变更历史. 关 ...
- QuickSort 快速排序 基于伪代码实现
本文原创,转载请注明地址 http://www.cnblogs.com/baokang/p/4737492.html 伪代码 quicksort(A, lo, hi) if lo < hi p ...
- HeapSort 堆排序 基于伪代码实现
此文原创, http://www.cnblogs.com/baokang/p/4735431.html ,禁止转载 GIF 动态图 伪代码 /* From Wikipedia, the free en ...
- 《大道至简》第一章——编程的精义_读后感(Java伪代码形式)
<大道至简>第一章——编程的精义_读后感(Java伪代码形式)1.愚公移山//愚公为团体的项目组织者.团体经理.编程人员.技术分析师等//子孙荷担者三人为三名技术人员//遗男为外协//目标 ...
- 第九章伪代码编程过程 The PseudoCode Programming Process
目录: 1.创建类和子程序的步骤概述 2.伪代码 3.通过伪代码编程过程创建子程序 4.伪代码编程过程的替代方案 一.创建类和子程序的步骤概述 (1)创建一个类的步骤 1.创建类的总体设计 2.创建类 ...
- 《大道至简》之第一章:编程的精义读后感(JAVA伪代码)
——大道至简之编程的精义读后感(JAVA伪代码) import.java.大道至简.*; import.java.愚公移山.*; public class YuGongYiShan{ 愚公 = {项目 ...
- 清除数据库中大于10W行的垃圾历史数据
-- =============================================-- Author: <Author,Name,龙鸿轩>-- Create date: &l ...
- cocos2dx中帧循环的伪代码实现
1.在游戏开发中,帧率很大程度上体现了游戏的流畅度,帧循环是游戏中一个很重要的概念 2.下面用伪代码实现了cocos2dx中的帧循环 /*main函数调用*/ CCApplication::share ...
- 【Latex】如何在Latex中插入伪代码 —— clrscode3e
1. 简介clrscode3e是<算法导论(第三版)>使用的伪代码的宏包,clrs其实表示的是Cormen.Leiserson.Rivest和Stein.它有个更老的版本clrscode, ...
随机推荐
- NOIP 模拟 $28\; \rm 割海成路之日$
题解 \(by\;zj\varphi\) 用两个集合分别表示 \(1\) 边联通块,\(1,2\) 边联通块 . \(\rm son_x\) 表示当前节点通过 \(3\) 类边能到的 \(2\) 联通 ...
- Vmware15的安装以及Ubunt的在虚拟机上的安装
一.vmware15安装 1.百度网盘地址 链接:https://pan.baidu.com/s/1Lgez57n50QEW97HNdYZCfQ 提取码:9wvy 2.下载到本地后 3.双击安装程序 ...
- pycharm使用Djiago创建第一个web项目
安装PyCharm专业版(注意社区版创建Djiago需要配置,比较麻烦) 创建Djiago项目点上 1.Inherit glocal site-packages(不然pycharm不去下载Djiago ...
- 五、Abp vNext 基础篇丨博客聚合功能
介绍 业务篇章先从客户端开始写,另外补充一下我给项目起名的时候没多想起的太随意了,结果后面有些地方命名冲突了需要通过手动using不过问题不大. 开工 应用层 根据第三章分层架构里面讲到的现在我们模型 ...
- 通俗易懂理解——dijkstra算法求最短路径
迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径.它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止 ###基本思想 通过Dij ...
- C#录音从声卡
原文 http://stackoverflow.com/questions/18812224/c-sharp-recording-audio-from-soundcard 我想从我的声卡(输出)录 ...
- OJ 注意事项
1,检查指针是否有效,即是否为NULL 1 void OutputMaxAndMin(int * pInputInteger, int InputNum, int * pMaxValue, int * ...
- docker-compose权限不够
root@kali:~# docker-compose version -bash: /usr/local/bin/docker-compose: 权限不够 chmod +x /usr/local/b ...
- Learning ROS: Aboat URDF (Unified Robot Description Format)
Building a Visual Robot Model with URDF from Scratch roscore &# With $(find urdf_tutorial), this ...
- 运行uni-app到微信开发者工具
1.工具及环境 HBuilder X 微信开发者工具 Node.js,测试:node -v(node安装) 和 npm -v(自带的npm也安装成功) 2.创建uni-app项目: 在点击工具栏里的文 ...