1
我的控制器看起來如何編寫條件來檢查不在codeigniter中的數據庫表中的csv文件數據?
public function importcsv()
{
$data['menu'] = $this->AdminModel->get_menu();
$data['error'] = ''; //initialize image upload error array to empty
$config['upload_path'] = './assets/uploads/';
$config['allowed_types'] = 'csv';
$config['max_size'] = '1000';
$this->load->library('upload', $config);
// If upload failed, display error
if (!$this->upload->do_upload())
{
$data['error'] = $this->upload->display_errors();
$this->load->view('csvindex', $data);
}
else
{
$file_data = $this->upload->data();
$file_path = './assets/uploads/'.$file_data['file_name'];
if ($this->csvimport->get_array($file_path))
{
$csv_array = $this->csvimport->get_array($file_path);
foreach ($csv_array as $row)
{
$data1['mid']=$row['mid'];
$data1['category']=$row['category'];
$data1['name']=$row['name'];
$data1['price']=$row['price'];
$data1['description']=$row['description'];
if($this->db->where('mid', $data1['mid']))
{
$this->db->update('menu', $data1);
}
if($this->db->where("mid <>",$data1['mid']))
{
$this->db->insert('menu', $data1);
}
}
$this->session->set_flashdata('success', 'Csv Data Imported Succesfully');
redirect(base_url().'Admin/menu');
}
else
{
$data['error'] = "Error occured";
$this->load->view('csvindex', $data);
}
}
}
使用條件
if($this->db->where('mid', $data1['mid']))
{
$this->db->update('menu', $data1);
}
我可以更新菜單表中的內容,其中中旬等於csv文件中旬($ data1 ['mid'])。它的工作很好。
我需要的是我要插入記錄時中旬在菜單表的csv文件沒有。對於我使用的條件
if($this->db->where("mid <>",$data1['mid']))
{
$this->db->insert('menu', $data1);
}
,但它不工作,它的工作當如果中期在csv文件沒有在菜單表,然後將其插入整個csv文件內容到表。
我的需求是我只需要插入不在菜單表中的記錄。如何編寫該條件。我很長一段時間都在努力,我對這種情況很陌生。提前感謝。所有的