在codeigniter中一次更新所有行,查询中出错

时间:2016-08-30 14:20:09

标签: php mysql codeigniter codeigniter-2

我正在尝试同时更新多行,我认为我的查询有些混乱,而我正在尝试同时更新所有行。我正在使用CodeIgniter框架。我想处理我的查询和从视图发送的数据,但无法获得同时更新所有行的逻辑。请注意,应该只有一个更新按钮,因为这是一项要求

我的观看代码是:

<form action="" method="post">
  <table border="1" style="background:none;width:100%;" RULES="ROWS" class="tab_data">
    <thead>
    <th width="30px">No</th>
    <th >Action Item</th>
    <th>Responsibility</th>
    <th>Order</th>
    <th>Mandatory?</th>
    <th width = "100px"  align="center">Actions</th>
    </thead>
    <tbody>

      <?php
      $serial_no = 1;
      if(count($rows))
      {
          foreach($rows as $row)
          {
              ?>
              <tr>
                <td><?php echo $serial_no; ?></td>
                <td>
                    <?php
                    echo "<input type='hidden' class='col-md-4 form-control' name='checklist_id' value='"
                    .$row['checklist_id']."' />";
                    echo $row['action_item'];
                    ?>
                </td>
                <td>
                    <?php echo $row['responsibility']; ?>
                </td>
                <td>
                  <input type="hidden" name="row_id[]" value="<?php echo $row['sequence']; ?>">
                  <input type="text" class="form-control" name="order[]" value="<?php echo $row['sequence']; ?>">
                </td>
                <td>
                  <input type="checkbox" class="" name="if_checklist<?php echo $row->checklist_id; ?>" value="1"  echo 'checked'; >
                </td>
                <td align="center">
                    <?php
                    echo anchor('exits/delete_absconding_checklist/'.$row['checklist_id'],
                 "<i class='fa fa-trash-o' alt='Delete' title='Delete' rel='".$row['id']."' ></i>",
                 array('rel' => $row->id, 'class' => 'edit_row'));
                    ?>
                </td>
              </tr>
              <?php
              $serial_no++;
          }
      }
      ?>
      <tr>
        <td></td><td></td><td></td><td></td>
        <td>
          <input type="hidden" name="action" value="update_order">
          <button type="submit" name="submit" class="btn btn-info pull-right">Update</button>
        </td>
      </tr>
    </tbody>
  </table>
</form>

我的控制器代码是:

function display_absconding_checklist()
{
    if($this->input->post('action') == '_doDelete' || $this->input->post('action') == '_doChangeStatus')
    {
        $this->admin_init_elements->delete_rows('applicant_status');
    }
    if($this->input->post('action') == 'update_order')
    {
        $this->exit_common->update_absconding_checklist();
    }
    $data['rows'] = $this->exit_common->get_all_absconding_checklists();

    $this->data['maincontent'] = $this->load->view('maincontents/backend_display_absconding_checklist', $data, true);
    $this->load->view('layout', $this->data);
}

我的模型代码是:

function update_absconding_checklist($post_array)
{
    $post_array = $this->input->post();
    foreach($post_array['checklist_id'] as $key => $rowid)
    {
        if($rowid > 0)
        {
            if(isset($post_array['if_checklist'.$rowid]))
                $in = '1';
            else
                $in = '0';
            $sql1 = "UPDATE pr_absconding_checklists SET `action_item` = '"
                .$post_array['action_item'][$key]
                ."', `sequence` = '".$post_array['sequence'][$key]
                ."', `if_checklist` = '".$in
                ."' WHERE `checklist_id` = ".$rowid;
        }
        else
        {
            $sql1 = "UPDATE pr_absconding_checklists SET `action_item` = '"
                .$post_array['action_item'][$key]
                ."', `sequence` = '".$post_array['sequence'][$key]
                ."', `if_checklist` = '".$in."'";
        }

        $query1 = $this->db->query($sql1);
    }
}

我没有错误但是我的代码中有很多错误,我搞砸了,我也附上了我的表快照,请推荐改进 我的表名是pr_absconding_checklists

enter image description here

0 个答案:

没有答案