for循环下的陷阱-重置数据
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{}
}
}
本站文章如未注明出处均为原创,转载请注明出处,如有侵权请邮件联系站长。