商品がカートに入っている場合は、その商品をカートに追加するとその数量を更新する必要があります。現在、数量を更新する代わりに重複した項目が追加されます。誰でも助けてください!以下のコード。商品が再び追加されたときのカート内の商品数の増加
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"] [$ quantity]] = $ _POST ["quantity"]; 'は$ _SESSION [" cart_item "] [$ k] [" quantity "] + = $ _POST [" quantity "];'、 '+ ='に気付く。 – Rasclatt
また、これをしないでください: '' SELECT * FROM medicine where med_id = '"。 $ _GET ["med_id"]。 "" "。あなたはSQLインジェクションの機会を許しています。 'med_id'が数値であると想定されている場合、まず数値であることを確認し、そうでなければエラーを投げます。最も簡単なのはparamをバインドすることだけです。 – Rasclatt