我尝试按批次200更新表格的列。例如,对于列“工作日”,前200个将获得值' 1' ,第二个200将获得价值' 2'等等。
到目前为止,我已成功获得:
$record=$this->db->get('user');
$i=0;
foreach ($record->result() as $row):
$data=array
(
'weekday'=>1,
);
$this->db->update('user', $data);
$i++;
if($i==200){
break;
}
endforeach;
echo '100 done';
foreach ($record->result() as $row):
$data=array
(
'weekday'=>2,
);
$this->db->update('user', $data);
$i++;
if($i==400){
break;
}
endforeach;
echo '200 done';
die;
但是在代码运行之后,所有的行都是'栏目'工作日'值已更新为' 2'。我不确定发生了什么。谢谢!
答案 0 :(得分:0)
你不需要打破并离开,只需在for循环中放入一个if
$record=$this->db->get('user');
$i=0;
foreach ($record->result() as $row):
if($i>=200){
$data=array
(
'weekday'=>2,
);
}
else
{
$data=array
(
'weekday'=>1,
);
}
$this->db->update('user', $data);
$i++;
endforeach;