Php 如何按200个批次更新表?

Php 如何按200个批次更新表?,php,sql,codeigniter,Php,Sql,Codeigniter,我正在尝试按200个批次更新表中的一列。例如,对于“weekday”列,第一个200将获得值“1”,第二个200将获得值“2”,依此类推 到目前为止,我已设法做到: $record=$this->db->get('user'); $i=0; foreach ($record->result() as $row): $data=array (

我正在尝试按200个批次更新表中的一列。例如,对于“weekday”列,第一个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;

但在代码运行后,所有行“列”的“weekday”值都会更新为“2”。我不知道发生了什么事。谢谢

你不需要中断并退出,只要在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;

1.选中select查询正在获取数据2。尝试将值1更改为3,然后查看更新本身是否为工作表单代码。