如何在 codeigniter 中依次更新两个 table 数据?

How to Update Two table Data one after other In codeigniter?

如何使用 vendor_plan_task_status_mapp table 更新计划。

计划更新的模型是

public function updatePlanData(){

    $planId = $this->input->post('plan_id');
    $data = array(

                    'plan_title' => $this->input->post('plan_title'),
                    'plan_price' => $this->input->post('plan_price'),
                    'plan_desc'     => $this->input->post('plan_desc')

                );

    $this->db->where('plan_id', $planId);
    $this->db->update('tbl_plan', $data);


    $this->db->where('plan_id',$planId);
    $this->db->delete('plan_task_mapping');



    foreach ($this->input->post('task_id') as $key => $value)

     {
        $data2 = array(

        'plan_id' => $planId,
        'task_id'   => $value

        );
     // echo "Index {$key}'s value is {$value}.";
           $this->db->insert('plan_task_mapping', $data2);
     }

//-------- HEAR I NEED A CODE TO UPDATE The V_T_S_M table-----------

}

第一次 table 更新后,我想更新 vendr_task_status_mapping table 中的数据?????

使用 $this->db->insert_batch(); 而不是插入 foreach loop。 查看此 link 如何使用它。

如果您在 plan_task_mapping table 中添加了一个用于添加唯一编号的字段,那么...正如您提到的代码:

$unique=array();
foreach ($this->input->post('task_id') as $key => $value)
 {
   $no=rand(0, 15);
    $data2 = array(
    'unique_no'=>$no,
    'plan_id' => $planId,
    'task_id'   => $value
    );
   $unique[] = $no; //store no in array to use it.

 // echo "Index {$key}'s value is {$value}.";
       $this->db->insert('plan_task_mapping', $data2);
 }

在删除 plan_task_mapping table 数据之前。获取该数据。

function select()
{
    $this->db->where('plan_id',$planId);
    $Q = $this->db->get('plan_task_mapping');
    if($Q->num_rows() > 0)
    {
        foreach ($Q->result_array() as $row)
        {
            $data[] = $row;
        }
    }
    $Q->free_result();
    return $data;
}

然后删除您在代码中提到的数据:

 $this->db->where('plan_id',$planId);
 $this->db->delete('plan_task_mapping');

然后从 VTSM 中删除旧数据 table:

 $this->db->where('vendor_plan_task_mapping_id',$data[0]['id']); //this data[0]['id'] come form select(). change field name if required.
 $this->db->delete('VTSM');

此处通过唯一编号获取新插入的数据://我们将其存储在数组中。

foreach($unique as $u_no)
{
   $this->db->where('unique_no',$u_no);
    $Q = $this->db->get('plan_task_mapping');
    if($Q->num_rows() > 0)
    {
        foreach ($Q->result_array() as $row1)
        {
            $plan[] = $row1;
        }
    }
    $Q->free_result();
    return $plan;
}

在上面的代码中,我们获取了新插入的数据以获取其 id 以插入状态。

正在插入状态:

foreach($plan as $a)
{
    $Sdata=array(
        "plan_task_mapping_id"=>$a['id'], //this is new id change name if required
      "status"="your new status");
      $this->db->insert('VTSM',$Sdata);

}

在此答案中,如果您更改计划但使用此代码,您必须简单地编辑和更新它 ANGIN 并且此模型为您的任务创建一个新 ID 并再次插入它。

 public function vendorUpdateModel($data)

       {
         $vendor_id = $this->input->post('vendor_id');
         $data = array(
           'category_id' => $this->input->post('category_id'),
           'plan_id' => $this->input->post('plan_id'),
           'city_id' => $this->input->post('city_id'),
           'business_name' => $this->input->post('business_name'),
           'owner_name' => $this->input->post('owner_name'),
           'contact_no1' => $this->input->post('contact_no1'),
           'contact_no2' => $this->input->post('contact_no2'),
           'vendor_email' => $this->input->post('vendor_email'),
           'subscription_date' => $this->input->post('subscription_date'),
           'vendor_description' => $this->input->post('vendor_description'),
           'vendor_address' => $this->input->post('vendor_address')

           );

       $this->db->where('vendor_id', $vendor_id);
       $this->db->update('vendor',$data);

       $this->db->where('vendor_id',$vendor_id);
       $this->db->delete('vendor_task_status_mapping');

       $this->db->select('task_mapp_id');
       $this->db->where('plan_id',$this->input->post('plan_id'));

       $query = $this->db->get('plan_task_mapping');

       foreach($query->result() as $row)

       {
       $data2 = array(

       'task_mapp_id' => $row->task_mapp_id,
       'vendor_id'  => $vendor_id,
          'task_status'  => '0'

          );

             $this->db->insert('vendor_task_status_mapping', $data2);
        }
          return;
         }