I have modified the code to use a foreach loop, now I can access the files names, and the print_r
is printing the files names in an array like this:
Array ( [0] => Uconn.png [1] => UW_Medicine.png [2] => Yale.png ) Axis.png
but I am still getting the following error:
A PHP Error was encountered
Severity: Notice
Message: Array to string conversion
and a databse error:
Error Number: 1054
Unknown column 'Array' in 'field list'
INSERT INTO `yacht_slider` (`yacht_slide_id`, `slide`) VALUES (87, Array)
I just don't know how should I pass the looped files inside the model to upload.
I am trying to upload a featured image in one input, and multiple images in another input at the same time, I tried many ways and methods to do this, but I always end with an error, mostly Array to string conversion error.
the featured image is stored in one database table and the multiple images are stored in another table.
My current code:
HTML:
<div class="form-group">
<label for="" class="control-label">Image</label>
<input type="file" class="form-control" name="featured">
</div>
<div class="form-group">
<label for="" class="control-label">Slider</label>
<input type="file" class="form-control" name="userfile[]" multiple>
</div>
Model:
public function create_yacht($yacht_img, $slider){
$slug = url_title($this->input->post('title'));
$data = array(
'title' => $this->input->post('title'),
'slug' => $slug,
'img' => $yacht_img,
'city' => $this->input->post('city'),
'category' => $this->input->post('category'),
'price' => $this->input->post('price'),
'description' => $this->input->post('description')
);
$this->db->insert('yachts', $data);
$insert_id = $this->db->insert_id();
$data_4 = array(
'yacht_slide_id' => $insert_id,
'slide' => $slider
);
$this->db->insert('yacht_slider', $data_4);
}
Controller:
public function create_yacht(){
$data['title'] = 'Create';
$data['categories'] = $this->category_model->get_categories();
$this->form_validation->set_rules('title', 'Title', 'required');
$this->form_validation->set_rules('city', 'City', 'required');
if($this->form_validation->run() === FALSE){
$this->load->view('templates/admin_header');
$this->load->view('admin/create_yacht', $data);
$this->load->view('templates/admin_footer');
}else{
$config['upload_path'] = './assets/images';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '2048';
$this->load->library('upload', $config);
$featured = 'featured';
if (!$this->upload->do_upload($featured)) {
$errors = array('errors' => $this->upload->display_errors());
$yacht_img = 'https://via.placeholder.com/1920x1080';
}else{
$data = array('upload_data' => $this->upload->data());
$yacht_img = $_FILES['featured']['name'];
}
foreach ($_FILES['userfile']['name'] as $name) {
$this->upload->initialize($config);
$this->upload->do_upload($name);
$data = array('upload_data' => $this->upload->data());
$slider = $_FILES['userfile']['name'];
}
print_r($slider);
print_r($yacht_img);
$this->yacht_model->create_yacht($yacht_img, $slider);
// redirect('admin');
}
}