我正在为在线书店开发购物车。我可以轻松地更新购物车而无任何条件。
每当用户更新数量时,我都希望该数量等于或小于我数据库中的数量。所以我在这里放个条件。
这是我在控制器中的更新购物车功能:
public function update_cart()
{
$contents = $this->input->post();
foreach ($contents as $content)
{
$info = array(
'rowid'=> $content['rowid'],
'qty' => $content['qty']
);
if($content['qty'] < '0')
{
$this->session->set_flashdata('error', '*Quantity can not be less than 0 or negative value.');
}
else
{
$this->cart->update($info);
}
}
redirect('cart');
}
这种情况还可以。
但是只要我将else if(){}条件用于检查用户给出的数量是否小于或等于我在数据库中的数量,就会发生问题。然后,这将不起作用或无法进行更新。
这是我的代码,如果满足以下条件,则使用其他代码:
public function update_cart()
{
$this->load->model('admin_model');
$books = $this->admin_model->get_book_detail($id);
$contents = $this->input->post();
foreach ($contents as $content)
{
$info = array(
'rowid'=> $content['rowid'],
'qty' => $content['qty']
);
if($content['qty'] < '0')
{
$this->session->set_flashdata('error', '*Quantity can not be less than 0 or negative value.');
}
else if($content['qty'] > $books->quantity)
{
$this->session->set_flashdata('error', '*This much quantity is not in stock.');
}
else
{
$this->cart->update($info);
}
}
redirect('cart');
}
我的状况有什么问题?特别是在其他if()条件下!