thinkPHP批量处理数据,并开启事务提交,完整实例
2018-01-03 13:49
302 查看
public function jijubinding(){ $Model = M(); //先用M函数实例化一个空对象 $Model->startTrans(); //开启事务 $data['user_id'] = $_POST['userid']; //1.处理textarea输入的数组 if ($this->isPost()) { if ($this->_post('jishennum')) { $r = explode("\r\n", $this->_post('jishennum')); //去掉空行元素 foreach ($r as $key => $val) { if (empty($val)) { continue; } $arr[] = $val; } //去除字符串间的空格 $arr = str_replace(' ', '', $arr); } } if($arr==""){ $this -> error('请输入机具号!!!'); } //var_dump($arr);die(); //数组的长度 $length = count($arr, COUNT_NORMAL); //var_dump($length);die(); if($length>20){ $this -> error('每次最多只能操作20台机具'); } //获取该地市下所有的客户经理id $mydepid = $_SESSION['my_info']['dep']; $depfind = M("Dep")->where("id=" . $mydepid)->find(); //var_dump($depfind);die(); $deplist = array(); if ($depfind ['pid'] == '0') { // 说明这个市级 $deplist = M("Dep")->where("id=" . $mydepid . " or pid=" . $mydepid)->field("id")->select(); } else { $deplist = M("Dep")->where("id=" . $depfind ['pid'] . " or pid=" . $depfind ['pid'])->field("id")->select(); } //二维变一维 foreach ($deplist as $key => $value) { if ($value == "") { continue; } $deplist[$key] = $value['id']; } //批量绑定机具 foreach ($arr as $m => $n) { if (empty ($n)) { continue; } $map['bodycode'] = $n; //筛选出重复机具号 $repeat = ""; for ($key = $m + 1; $key < $length; $key++) { if ($arr[$m] == $arr[$key]) { $repeat = "222"; break; } } //2.判断各种错误原因 if($repeat == ""){ if ( strlen( $map['bodycode'] )<20 ) { $stockArray = M("Kuguan_stock")->where($map)->find(); if($stockArray!=""){ if(in_array($stockArray['depid'], $deplist)){ if($stockArray['flag1']==0){ if($stockArray['user_id']==""){ $Model->table('allinpay_kuguan_stock')->where($map)->data($data)->save(); $meicuo[$m]['bodycode'] = $n; $meicuo[$m]['qwer'] = ""; }else{ $mistake[$m]['bodycode'] = $n; $mistake[$m]['qwer'] = "机具已被绑定"; } }else{ $mistake[$m]['bodycode'] = $n; $mistake[$m]['qwer'] = "机具未在库中"; } }else{ $mistake[$m]['bodycode'] = $n; $mistake[$m]['qwer'] = "机具不属此地市"; } }else{ $mistake[$m]['bodycode'] = $n; $mistake[$m]['qwer'] = "库房无此机具"; } }else{ $mistake[$m]['bodycode'] = $n; $mistake[$m]['qwer'] = "机具号过长"; } }else{ $mistake[$m]['bodycode'] = $n; $mistake[$m]['qwer'] = "机具号重复"; } } //foreach结束 //把两个数组合成一个数组 if (empty($meicuo) && !empty($mistake)) { $result = $mistake; } elseif (!empty($meicuo) && empty($mistake)) { $result = $meicuo; } elseif (!empty($meicuo) && !empty($mistake)) { $result = array_merge_recursive($meicuo, $mistake); } else { $result = null; } if($mistake==""){ $roll = true; }else{ $roll = false; } //开始提交绑定 if ($roll == true) { $Model->commit(); $username = M('User')->where("id=" . $_POST['userid'])->getField('username'); foreach ($arr as $m => $n) { if (empty ($n)) { continue; } $cheng = M('kuguan_stock')->where(" bodycode='$n' ")->find(); $success[$m]['jijutype'] = $cheng['jijutype']; $success[$m]['jijumodel'] = $cheng['jijumodel']; $success[$m]['bodycode'] = $cheng['bodycode']; $success[$m]['type'] = $cheng['type']; $success[$m]['flag2'] = $cheng['flag2']; $success[$m]['flag1'] = $cheng['flag1']; $success[$m]['box_id'] = $cheng['box_id']; $success[$m]['username'] = $username; } $this->assign("success", $success); $this->d 9d1f isplay('success'); } else { $Model->rollback(); $this->assign("result", $result); $this->display('mistake'); } }
相关文章推荐
- ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
- ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
- ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
- ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
- 微信小程序服务器请求和上传数据,上传图片并展示,提交表单完整实例代码附效果图
- ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
- ORACLE数据恢复方法(提交事务也可以)
- Ajax提交数据(Get Post)详解和实例
- 详解thinkphp实现excel数据的导入导出(附完整案例)
- SpringMVC后台程序接收ajax异步提交数据的实例
- jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
- 一个简单json数据提交实例
- Nginx 开启PATHINFO支持ThinkPHP框架实例
- thinkphp实现excel数据的导入导出(附完整案例)
- ThinkPHP表单自动提交验证实例教程
- PHP和Ajax异步批量处理数据提交问题
- Spring控制多张数据表同时提交的事务操作
- Silverlight实例教程 - Validation用户提交数据验证捕获
- JDBC ConncetionFactory、Statement、事务提交模式和事务隔离级别和批量处理的应用
- 学习ThinkPHP3.2.2:video8,提交页面后的处理方法包括有效判断数据插入页面跳转功能