如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
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{}
}
}
王明昌博客
