Я хочу обновить данные в базе данных и должен соответствовать двум условиям, тогда только обновит данные в базе данных.
Пожалуйста, посмотрите в моей модели, есть два условия, которое является идентификатороми order_id.Когда назначается только одно условие [ $ this-> db-> where ('order_id', $ id); ], это хорошо работает для одного элемента, но когда в заказе два элемента и выше, оно толькоможно обновить данные для последней строки элементов заказа.
Итак, я пробую с двумя условиями, которые являются [ $ this-> db-> где ('order_id', $ id); ] и [ $ this-> db-> where ('id', $ oid); ], но это не может работать.
Обновлено !!
Я изменил некоторые коды в контроллере и модели. Я получаю сообщение об ошибке: [Преобразование массива в строку], id
= Массив И order_id
= '10'
Контроллер:
public function EditOrderPage(){
$id = $this->uri->segment(3);
$oid = $this->order->GetCusOrderItemID($id);
$data['title'] = "JCUBE";
$data['orders'] = $this->order->GetCusOrder($id);
$data['orderitems'] = $this->order->GetCusOrderItem($id);
$data['item'] = $this->order->GetItem();
$data['projectcode'] = $this->order->GetProjectCode();
$data['payoption'] = $this->order->GetPayOption();
$data['eppmonth'] = $this->order->GetEppMonth();
$this->load->view('ordering/header',$data);
$this->load->view('ordering/edit_order_page',$data);
$this->load->view('ordering/footer',$data);
if($this->input->post('update')){ //if press button 'update order'
$email = $this->input->post('email');
$tel = $this->input->post('telno');
$address = $this->input->post('address');
$projectCode = $this->input->post('projectcode');
$payOption = $this->input->post('options');
$eppMonth = $this->input->post('eppmonth');
$RefOrderID = $this->input->post('ref_order_id');
$remark = $this->input->post('remark');
$grandTotal = $this->input->post('grandtotal');
$this->order->UpdateOrderHeader($email,$tel,$address,$projectCode,$payOption,$eppMonth,$RefOrderID,$remark,$grandTotal,$id);
$post = $this->input->post();
$arraySize = count($post['item_id']);
for($k=0; $k<$arraySize; $k++){
$itemName = $this->order->GetItemName($post['item_id'][$k]);
$productId = $post['item_id'][$k];
$itemName = $itemName['item_name']; //to be search in model using productID
$quantity = $post['qty'][$k];
$weight = $post['weight'][$k];
$transportation = $post['transportation'][$k];
$premium = $post['gp'][$k];
$discount = $post['discount'][$k];
$unitPrice = $post['unit_price'][$k];
$TotalWithoutTax = $post['totalwithouttax'][$k];
$TotalTax = $post['totaltax'][$k];
$TotalAmtInclTax = $post['totalamtincltax'][$k];
$this->order->UpdateOrderItems($productId,$itemName,$quantity,$weight,$transportation,$premium,$discount,$unitPrice,$TotalWithoutTax,$TotalTax,$TotalAmtInclTax,$oid,$id);
}
}
}
Модель:
public function GetCusOrderItemID($id = NULL){
$this->db->select('oi.id',$id);
$this->db->from('order_items oi');
$this->db->join('order o', 'oi.order_id = o.id');
$this->db->where('o.id');
$query = $this->db->get();
return $query->result_array();
}
public function UpdateOrderItems($productId,$itemName,$quantity,$weight,$transportation,$premium,$discount,$unitPrice,$TotalWithoutTax,$TotalTax,$TotalAmtInclTax,$oid,$id){
$OrderItem = array(
'product_id' => $productId,
'item' => $itemName,
'qty' => $quantity,
'weight' => $weight,
'transportation_price' => $transportation,
'gp' => $premium,
'discount' => $discount,
'unit_price' => $unitPrice,
'amt_without_tax' => $TotalWithoutTax,
'tax' => $TotalTax,
'amt_incl_tax' => $TotalAmtInclTax
);
$this->db->set($OrderItem);
$this->db->where('id',$oid);
$this->db->where('order_id',$id);
$this->db->update('order_items');
Вид:
<?php
foreach($orderitems as $orderitem) { ?>
<tr class="item-details">
<td><input id="orderitems" type="hidden" class="form-control" name="id" value="<?=$orderitem['id']?>" readonly></td>
<td class="">
<?php
$options = array(
'' => '~Choose An Item~'
);
foreach ($item as $rows){
$options[$rows->id] = $rows->item_name;
}
$select = array(
'name' => 'item',
'id' => 'item_id',
'class' => 'form-control'
);
echo form_dropdown('item_id[]', $options,set_value('item_name',$orderitem['product_id']),$select);
?>
</td>
<td class=""><input type="number" id="qty[]" class="item-qty" name="qty[]" step="1" min="0" value="<?=$orderitem['qty']?>"/></td>
<td><input type="number" name="weight[]" class="weight" step="any" value="<?=$orderitem['weight']?>"/></td>
<td><input type="number" name="transportation[]" class="transporation" step="any" value="<?=$orderitem['transportation_price']?>" readonly/></td>
<td><input type="text" id="gp[]" name="gp[]" value="<?=$orderitem['gp']?>" /></td>
<td><input type="text" id="discount[]" name="discount[]" value="<?=$orderitem['discount']?>" readonly/></td>
<td><input type="text" id="unit_price[]" name="unit_price[]" value="<?=$orderitem['unit_price']?>" /></td>
<td align="right">
<input type="text" id="totalwithouttax[]" name="totalwithouttax[]" value="<?=$orderitem['amt_without_tax']?>" readonly>
</td>
<td align="right">
<input type="text" id="totaltax[]" name="totaltax[]" value="<?=$orderitem['tax']?>" readonly>
</td>
<td align="right">
<input type="text" id="totalamtincltax[]" name="totalamtincltax[]" value="<?=$orderitem['amt_incl_tax']?>" readonly>
</td>
</tr><br/><br><br><br>
<?php } ?>
Я хочу обновить элементы с этими двумя условиями.Надеюсь, кто-нибудь может мне помочь.