私は構築しようとしているこのショッピング カートを持っており、他の誰かが開発したサンプル セットアップを見つけました。ほとんどの場合、必要なことを行うように変更することができました。
私にとっての問題は、「カートに追加」するときに新しい行/インスタンスを作成する代わりに、その特定のアイテムの数量を更新することです。アイテムの数量を更新するのではなく、新しい行を作成するために必要です (詳細な変更では、「カートに追加」する前に色/サイズ/素材などを選択するため)。
間違いなく、これは私が以下に示したものを単純に変更したものですが、これを正しく行うための私の試みはすべて失敗しました。しかし、以下は何が起こっているかの単純化されたバージョンです:
switch($action) {
case "add":
$_SESSION['cart'][$product_id]++;
break;
}
if($_SESSION['cart']) {
foreach($_SESSION['cart'] as $product_id => $quantity) {
$sql = sprintf("SELECT title, description, price FROM shoes WHERE id = %d;", $product_id);
$result = mysql_query($sql);
if(mysql_num_rows($result) > 0) {
list($title, $description, $price) = mysql_fetch_row($result);
$line_cost = $price * $quantity;
$total = $total + $line_cost;
echo " $title<br />
$quantity <a href=\"$_SERVER[PHP_SELF]?action=remove&id=$product_id\">X</a><br />
$line_cost";
}
}
}