im все еще изучать codeigniter и возникли проблемы. То есть Вы должны использовать метод «set» для обновления записи.Невозможно обновить таблицу продуктов. Вы должны использовать метод «set», чтобы обновить запись
Я пытаюсь обновить таблицу: продукт, который содержит имя product_name, product_desc и т. Д. Ниже, - это мой контроллер, просмотр и модель. Я не могу понять, что я делаю неправильно. Я всегда проверял print_r ($ array) ; это дает мне пустой массив ... хотя я действительно получаю информацию о товаре, отображаемую в полях ввода по ссылке: ci/index.php/admin/product/1 ..
публикация половины кода для просмотра в виде кода просмотра длинный ..
контроллер:
// **** Для редактирования продукта **** //
public function edit_products(){
$data = array ('product_name'=>$this->input->post('product_name'),
'product_desc'=>$this->input->post('product_desc'),
'product_stock'=>$this->input->post('product_stock'),
'product_sku'=>$this->input->post('product_sku'),
'inventory_date'=>$this->input->post('inventory_date'),
'product_price'=>$this->input->post('product_price'),
'featured_product'=>$this->input->post('featured_product'),
'best_seller'=>$this->input->post('best_seller'),
'brand_id'=>$this->input->post('brand_id'),
);
$upd_pr = $this->mainmodel->update_product($_POST);
if($upd_pr){
$this->session->set_flashdata('messages', 'Updated Sucessfully');
redirect('admin/editing_products');
}else{
$this->session->set_flashdata('error', 'Updation Failed');
redirect('admin/editing_products');
}
}
public function editing_products(){
$data['product']=$this->mainmodel->set_pro2();
//$data['images'] = $this->products->images($id);
$data['content']='admin/edit_products';
$this->load->view('admin/main',$data);
}
Модель:
/*for update Product*/
public function update_product($array){
extract($array);
//print_r($array);
//die;
$this->db->update('product',array('product_name'=>$product_name,'product_desc'=>$product_desc,'inventory_date'=>$inventory_date,'product_price'=>$product_price,'featured_product'=>$featured_product,'best_seller'=>$best_seller,'brand_id'=>$brand_id));
$this->db->update('product');
return ;
}
function set_pro2(){
$q = $this->db->query('SELECT * FROM product,product_image,category_product WHERE product.product_id = category_product.product_id AND product.product_id = 1 LIMIT 1');
если ($ q-> num_rows()> 0) {
foreach($q->result() as $row){
$data[] = $row;
}
return $data;
}
}
Вид:
<form class="form-horizontal form-row-seperated" enctype="multipart/form-data" action="<?php echo site_url('admin/edit_products') ?>" method="post">
<div class="form-group">
<?php foreach($product as $pro){ ?>
<label class="col-md-2 control-label">Name:<span class="required">
* </span>
</label>
<div class="col-md-10">
<input type="text" class="form-control" name="product_name" placeholder="" value="<?php echo $pro->product_name; ?>">
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Description: <span class="required">
* </span>
</label>
<div class="col-md-10">
<input type="text" class="form-control" name="product_desc" value="<?php echo $pro->product_desc; ?>">
</div>
</div>
В вашей модели в рамках функции update_product у вас есть 2 функции обновления. Удалите вторую и посмотрите, работает ли это ... – Craig
Спасибо большое, я удалил второе обновление, и оно сработало .. но оно обновляет все продукты .. но не тот, который выбирается ... –
Вы, мне нужно установить ГДЕ. $ this-> db-> где ('product_name', $ array ['product_name']); что предполагается, что имя продукта уникально. – Craig