상품이 이미 장바구니에 들어있는 경우 장바구니에 특정 상품을 추가 할 때 수량을 업데이트해야합니다. 현재 수량을 업데이트하는 대신 중복 된 항목이 추가됩니다. 아무도 제발 도와 줄 수 없어! 아래 코드.상품을 다시 추가 할 때 장바구니에 들어있는 상품의 수량이 증가합니다
case "add":
if(!empty($_POST["quantity"])) {
$productByCode = $db_handle->runQuery("SELECT * FROM medicine WHERE med_id='" . $_GET["med_id"] . "'");
$itemArray = array(
$productByCode[0]["med_id"]=>array(
'name'=>$productByCode[0]["med_name"],
'med_id'=>$productByCode[0]["med_id"],
'image'=>$productByCode[0]["Image"],
'quantity'=>$_POST["quantity"],
'price'=>$productByCode[0]["unit_cost"]
)
);
if(!empty($_SESSION["cart_item"])) {
if(in_array($productByCode[0]["med_id"],$_SESSION["cart_item"])){
foreach($_SESSION["cart_item"] as $k => $v) {
if($productByCode[0]["med_id"] == $k)
$_SESSION["cart_item"][$k]["quantity"] = $_POST["quantity"];
}
}
else {
$_SESSION["cart_item"] = array_merge($_SESSION["cart_item"],$itemArray);
}
}
else {
$_SESSION["cart_item"] = $itemArray;
}
}
break;
case "remove":
if(!empty($_SESSION["cart_item"])) {
foreach($_SESSION["cart_item"] as $k => $v){
if($_GET["med_id"] == $_SESSION["cart_item"][$k]['med_id'])
unset($_SESSION["cart_item"][$k]);
if(empty($_SESSION["cart_item"]))
unset($_SESSION["cart_item"]);
}
}
break;
당신이 당신의 카트를위한 플러그인이나 라이브러리를 사용하거나 직접 코딩 : 스위치에 추가의
재 작업? – PhpDude
$ _SESSION [ "cart_item"] [$ 수량]] = $ _POST [ "수량"];'$ _SESSION [ "cart_item"] [$ k] [ "수량 "] + = $ _POST ["quantity "];','+ =' – Rasclatt
에 주목하십시오. 이렇게하지 마십시오 :''SELECT * FROM medicine where med_id = '". $ _GET [ "med_id"]. "" ". 당신은 SQL 주입 기회를 허용하고 있습니다. 'med_id'가 숫자라고 생각되면, 먼저 숫자인지 확인하고 그렇지 않으면 에러를 던집니다. 가장 쉬운 방법은 param을 바인딩하는 것입니다. – Rasclatt