如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
for循环下,判断excel中的数据是否已经存在于数据库,
如果不存在,则新增数据,如果存在,判断amount是否相同,如果不相同则更新
其中出现的错误数,只有第一个数据更新,其他的都为新增,
经过步步差查找,终于找到了问题
for循环中没有重置数据$data,本来还以为是for循环if套的太多问题,看来是我想多了(之前使用tp框架for循环不能套太多,否则会出错),下面是正确的数据代码
for ($i = 2;$i <= $highestRow;$i++) { $res=''; $data = []; $data['number'] = $objPHPExcel->getActiveSheet()->getCell("B" . $i)->getValue().''; $data['title'] = $objPHPExcel->getActiveSheet()->getCell("C" . $i)->getValue().''; //判断数据库是否已经存在 $res = M('Stock')->where($data)->find(); $amount = $objPHPExcel->getActiveSheet()->getCell("D" . $i)->getValue().''; if($res){ $data['amount'] = $amount; $id = $res['id']; if($res['amount']!= $data['amount']){ if($data['number']){ $a = M('Stock')->where("id='$id'")->data($data)->save(); }else{} }else{} }else{ $data['amount'] = $amount; if($data['number']){ M('Stock')->add($data); }else{} } }