CodeIgniter使用join和if语句php更新数据库

时间:2018-08-22 03:57:38

标签: php database codeigniter if-statement join

我正在建立请假批准系统,每年有两种类型的请假。

    public function approve($id, $leave_type, $leave_start, $leave_end) 
{   
    $this->db->set('status', 1);
    $this->db->where('id', $id);
    $this->db->update('leave');
    $this->db->join('users', 'users.id = leave.user_id');


    if($leave_type == "Annual")
    {
        $this->db->set('casual_left', '`casual_left`+10', FALSE);
        $this->db->where('id', $id);
        $this->db->update('users');         
    }       
    else{

        $this->db->set('annual_left', '`annual_left`+3', FALSE);
        $this->db->where('id', $id);
        $this->db->update('users');
    }

    return $this->db->affected_rows() > 0;     
}

我不确定条件的顺序。

2 个答案:

答案 0 :(得分:1)

请尝试以下操作:

    $this->db->set('status', 1);
    if($leave_type == "Annual")
    {
      $this->db->set('casual_left', '`casual_left`+10', FALSE);
    }       
    else{
      $this->db->set('annual_left', '`annual_left`+3', FALSE);
    }

   $this->db->where('leave.id',$id);
   $this->db->where('users.id',$id);
   $this->db->where('leave.user_id = users.id');
   $this->db->update('leave,users');

答案 1 :(得分:0)

请使用以下代码:

$this->db->set('status', 1);
if($leave_type == "Annual")
    {
        $this->db->set('casual_left', '`casual_left`+10', FALSE);
     }       
    else{
         $this->db->set('annual_left', '`annual_left`+3', FALSE);
       }

$this->db->where('leave.id',$id);
$this->db->where('users.id',$id);
$this->db->update('leave JOIN users ON leave.user_id= users.id');