从opencart中删除一个项目将删除所有内容

从opencart中删除一个项目将删除所有内容,opencart,Opencart,我的客户端正在使用Opencart v2.1.0.2。问题是,当我从购物车中删除单个项目时,所有其他项目也会被删除。是的,它使用一个自定义模板,下面是调用delete函数的行: <td class="text-center"><button type="button" onclick="cart.remove('<?php echo $product['cart_id']; ?>');" title="<?php echo $button_remove; ?&

我的客户端正在使用Opencart v2.1.0.2。问题是,当我从购物车中删除单个项目时,所有其他项目也会被删除。是的,它使用一个自定义模板,下面是调用delete函数的行:

<td class="text-center"><button type="button" onclick="cart.remove('<?php echo $product['cart_id']; ?>');" title="<?php echo $button_remove; ?>" class="btn btn-danger btn-xs"><i class="fa fa-times"></i></button></td>
删除所有内容。它缺少要删除的内容的产品id

其中
仅指定:购物车id、客户id和会话id-因此此查询将删除与该条件匹配的所有内容。它不会专注于某个特定的产品,所以它会将它们全部包含在内

在不知道产品ID使用什么变量的情况下,正确的查询应该是:

public function remove($cart_id) {
      $this->db->query("DELETE '".(int)$this->request->post['product_id']."' FROM " . DB_PREFIX . "cart WHERE cart_id = '" . (int)$cart_id . "' AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'");
}
(int)$this->request->get['product\u id']
是大多数产品id调用的$\u get请求。 另一个例子可以是:
(int)$this->request->post['product\u id']
用于$\u post调用

模板还可以执行类似于
$product\u id
的操作,因此,如果post/get不起作用,请检查它使用的变量

一旦查询完成,javascript按钮只指定购物车id(而不是产品)。如果你想让我的例子起作用,就把你的产品ID放在那里。您需要同时传递产品id和购物车id;否则,在没有购物车id的情况下,如果其他购物者同时拥有相同的商品,一个人移除该商品将为他们所有人移除

DELETE FROM
public function remove($cart_id) {
      $this->db->query("DELETE '".(int)$this->request->post['product_id']."' FROM " . DB_PREFIX . "cart WHERE cart_id = '" . (int)$cart_id . "' AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'");
}