ajax与算法,sql的group处理
function correctAction(){
$semester_id = $this->_getParam("semester_id");
$day = $this->_getParam("day");
//todo...
$where = array();
$where['lx_lessons.semester_id = ?'] = array("type"=>,"val"=>$semester_id);
$where['lx_lessons.lvalue = ?'] = array("type"=>,"val"=>'');
$where['lx_lessons.day = ?'] = array("type"=>,"val"=>$day);
$where['lx_lessons.user_id > ?'] = array("type"=>,"val"=>);
$aLessons = $this->dao_lessons->getlessons($where,array('day desc','lorder desc','user_id desc'), false, false, false, array("id","day","lorder","lvalue","user_id","course_id"));
$a = $c = $d = array();
foreach($aLessons as $key=>$val)
{
$a[$val['user_id']][$val['id']] = $val['lorder'];
}
foreach($a as $k=>$v)
{
$total = count($v);
if($total > )
{
if($total !== count(array_unique($v)))
{
foreach ($v as $key2 => $value2) {
$c[$k][$value2][] = $key2;
}
}
}
}
foreach ($c as $key3 => $value3) {
foreach ($value3 as $key4 => $value4) {
if(count($value4) > )
{
$d[$key4] = $value4;
}
}
}
$total = $this->updateCourse($d);
echo $total;
}
function updateCourse($data)
{
$total = ;
foreach ($data as $k => $v) {
$count = count($v);
foreach ($v as $k1 => $v1) {
$dataLessons['id'] = $v1;
$dataLessons['lvalue'] = /$count;
$res = $this->dao_lessons->updateLessons($dataLessons);
if($res){
$total ++;
}
}
}
return $total;
}
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head >
<title></title>
<link rel="stylesheet" type="text/css" href="/js/thickbox3.1/thickbox.css">
<link rel="stylesheet" type="text/css" href="/css/master.css" />
<link rel="stylesheet" type="text/css" href="/css/style.css" />
<link rel="stylesheet" type="text/css" href="/css/commonlist.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script type="text/javascript">
var jQuery2 = jQuery.noConflict();
</script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="/js/common/png.js"></script>
<script type="text/javascript" src="/js/common.js"></script>
<script type="text/javascript" src="/js/thickbox3.1/thickbox.js"></script>
<script type="text/javascript" src="/js/fc.js"></script>
<script type="text/javascript" src="/js/common/commonlist.js"></script>
<script type="text/javascript">
$(function(){
var gaodu1 = $(window).height()-;
var kuandu1 = $(window).width()-; $("#waikuan").height(gaodu1);
$("#waikuan").width(kuandu1); //$("body").append("<div id='main_bg'/>");
//$("#main_bg").append("<img src='/images/menubg.png' id='bigpic'>"); cover();
$(window).resize(function(){ //浏览器窗口变化
cover();
});
//提交
$("#import").click(function(){
if($("#excel").val()){//判断是否是excel,xls或xlsx
var doc = $("#excel").val();
var pos = doc.lastIndexOf(".");
var suffix = doc.substring(pos+);
if(suffix == 'xls' || suffix == 'xlsx'){
$("#form1").submit();
}
}else{
alert("请选择excel文件");
}
}); $("#correct").click(function(){
var semester_name = $("#semester_id").find("option:selected").text(); var r=confirm("确定校准"+semester_name+"课时?");
if (r==true)
{
testCourse();
}
});
}); function testCourse(day)
{
var semester_id = $("#semester_id").val();
$.ajax({
type: "POST",
url: '/exam/sche/correct',
data: "semester_id="+semester_id+"&day="+day,
success: function(msg){
msg = "周"+day+"数据校准完毕,更新了"+msg+"条。";
if(day>=){
msg += "<br/>";
}
if(day == ){
$("#testCourse").html("");
}
$("#testCourse").append(msg);
if(day < )
{
var newDay = parseInt(day)+;
testCourse(newDay);
}
}
}); } function cover(){
var win_width = $(window).width();
var win_height = $(window).height();
$("#bigpic").attr({width:win_width,height:win_height});
} $(function(){
//$.toSelect("user_name","selectid");
$(".stripe_tb tr").addClass("bgwhite");
$(".stripe_tb tr").mouseover(function(){
//如果鼠标移到class为stripe_tb的表格的tr上时,执行函数
// $(this).addClass("over");
})
.mouseout(function(){
//给这行添加class值为over,并且当鼠标一出该行时执行函数
$(this).removeClass("over");
}) //移除该行的class
$(".stripe_tb tr:even").addClass("alt");
//给class为stripe_tb的表格的偶数行添加class值为alt
}); </script>
</head>
<body>
<!--头部信息begin-->
<!--{include file = '../../head.tpl'}-->
<!--头部信息end-->
<div id="main">
<div class="header">
<h1>导入学生数据表</h1>
<div class="back"> <a href="/member"><img src="/images/backbt.png" /></a> </div>
</div> <table width="90%" border="" cellspacing="" cellpadding="" class="yuanjiao" >
<tr>
<td valign="top">
<form id="form1" name="form1" method="post" action="" enctype="multipart/form-data">
<div class="grey2" style="padding:30px 20px 10px 50px;">
<select name="semester_id" id="semester_id" class="ml10" >
<!--{html_options options=$aSemesters selected=$curSemester}-->
</select>
<input type="file" name="excel" id="excel" value="">
</div>
<div class="tijiao1 mt20"><span id="import">导入</span></div>
<div class="tijiao1 mt20"><span id="correct">课时校准</span></div>
</form>
</td>
</tr>
</table>
<table class="datalist">
<!--{if $aError}-->
<!--{section name=data loop=$aError}-->
<tr class="data_row">
<td class="left" style="text-align:left;"><span style="color:red">Error:</span><!--{$aError[data]}--></td>
</tr>
<!--{/section}-->
<!--{/if}-->
<div id="testCourse"></div>
</table>
</div>
</body>
</html>
function correct2Action(){
$semester_id = $this->_getParam("semester_id");
$day = $this->_getParam("day");
//todo...
$where = array();
$where['lx_lessons.semester_id = ?'] = array("type"=>,"val"=>$semester_id);
//$where['lx_lessons.lvalue = ?'] = array("type"=>1,"val"=>'1');
$where['lx_lessons.day = ?'] = array("type"=>,"val"=>$day);
$where['lx_lessons.user_id > ?'] = array("type"=>,"val"=>);
$aLessons = $this->dao_lessons->getlessons($where,false, false, false, false, array("COUNT(id) as num","day","lorder","user_id"),false,array('day','lorder','user_id'));
foreach($aLessons as $key=>$val)
{
if($val['num'] == )
{
unset($aLessons[$key]);
}
}
print_r($aLessons);exit;
ajax与算法,sql的group处理的更多相关文章
- sql语句Group By用法-转载
sql语句Group By用法一则 2007-10-25 12:00 sql语句Group By用法一则 如果我们的需求变成是要算出每一间店 (store_name) 的营业额 (sales),那怎么 ...
- MYSQL:SQL中Group By的使用
SQL中Group By的使用 1.概述 2.原始表 3.简单Group By 4.Group By 和 Order By 5.Group By中Select指定的字段限制 6.Group By ...
- C# Linq to sql 实现 group by 统计多字段 返回多字段
Linq to sql 使用group by 统计多个字段,然后返回多个字段的值,话不多说,直接上例子: where u.fy_no == fy_no orderby u.we_no group u ...
- MySQL 使用profile分析慢sql,group left join效率高于子查询
MySQL 使用profile分析慢sql,group left join效率高于子查询 http://blog.csdn.net/mchdba/article/details/54380221 -- ...
- 转载:SQL中Group By 的常见使用方法
SQL中Group By 的常见使用方法 转载源:http://www.cnblogs.com/wang-meng/p/5373057.html 前言今天逛java吧看到了一个面试题, 于是有了今天 ...
- SQL 之 Group By
SQL 之 Group By Group By从字面意义上理解就是根据By指定的规则对数据进行分组,所谓的分组就是将一个数据表划分成若干个小区域. 例如:有这么一张表
- sql中group by用来干嘛的
sql中group by用来干嘛的 一.总结 一句话总结: 1.group by用来分类汇总的,by后面接要分的类 2.group by既然是分类汇总,那就要和聚合函数结合使用,因为要汇总啊 3.ha ...
- SQL中Group By的使用
1.概述 2.原始表 3.简单Group By 4.Group By 和 Order By 5.Group By中Select指定的字段限制 6.Group By All 7.Group By与聚合函 ...
- SQL中Group By 的使用
1.概述 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理. 2.原始表 3.简 ...
随机推荐
- Oracle中字段的修改操作语法
对字段操作 操作方法 更新字段名 alter table TABLE_NAME rename column column_old to column_new; 添加字段 alter table T ...
- Python:staticmethod vs classmethod
Being educated under Java background, static method and class method are the same thing. But not so ...
- React 从0开始 消息传递
React笔记 React 数据决定DOM 以往的做法是通过JS去操作DOM 将数据填充 JSX Jsx javascript xml HTML的结构组装到js中 jsx使用style的时候 不能直接 ...
- CreateFile函数详解(确实很详细)
CreateFile The CreateFile function creates or opens the following objects and returns a handle that ...
- MySQL RR隔离 读一致性
MySQL RR 模式下 事务隔离问题: Session 1: mysql> select * from test; +------+------+ | id | name | +------+ ...
- DLL中传递STL参数,vector对象作为dll参数传递等问题(转)
STL跨平台调用会出现很多异常,你可以试试. STL使用模板生成,当我们使用模板的时候,每一个EXE,和DLL都在编译器产生了自己的代码,导致模板所使用的静态成员不同步,所以出现数据传递的各种问题,下 ...
- centos6.4 ceph安装部署之ceph block device
1,prelight/preface ceph storage clusterceph block deviceceph filesystemceph object storage 此篇记录ceph ...
- aix installp软件包管理工具
软件可以安装成两种状态:applied和committed.Applied状态保存了原来以前版本的软件,它把以前版本存储在/usr/lpp/PackageName目录下.这种方式可以回滚到以前的软件版 ...
- 在centos中添加开机自启动服务
将服务的shell脚本添加到/etc/rc.d的rc.local文件的最后面,需要在服务名称的前面加上其路径. 例如我要将httpd添加到开机自启动中,需要在rc.local添加如下代码 /usr/s ...
- poj 3020 Antenna Placement (最小路径覆盖)
链接:poj 3020 题意:一个矩形中,有n个城市'*'.'o'表示空地,如今这n个城市都要覆盖无线,若放置一个基站, 那么它至多能够覆盖本身和相邻的一个城市,求至少放置多少个基站才干使得全部的城市 ...