我遇到了购物车的一些错误。 它基本上只能更新购物车中的第一行而不是其余的。 以下是我正在尝试做的一个例子。 例; 当我购买产品A时,它会在购物车中, 当我再次购买产品A时,它将更新为数量2,而不是作为另一行插入。
当我在做代码时, 代码仅适用于第一行,而不适用于角色的其余部分。 含义, 当我购买产品A并在购物车中再次添加产品A时,数量将更新为2。 但是,当我购买其他产品(如产品B)并再次添加产品B时, 数量不会更新, 相反,它将作为新行插入。
以下是我的代码, 有人可以帮我这部分吗? 谢谢
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$selectProduct = "SELECT * FROM supermarketcart;";
$qrySeledtedProduct = mysql_query($selectProduct);
$fetchSelectedProduct = mysql_fetch_assoc($qrySeledtedProduct);
if($fetchSelectedProduct['sid']!= $_POST['id']) {
$insertSQL = sprintf("INSERT INTO supermarketcart (sid, pname, pdescription, package, pprice, pimage, username) VALUES (%s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['id'], "int"),
GetSQLValueString($_POST['name'], "text"),
GetSQLValueString($_POST['description'], "text"),
GetSQLValueString($_POST['package'], "text"),
GetSQLValueString($_POST['price'], "double"),
GetSQLValueString($_POST['imagename'], "text"),
GetSQLValueString($_POST['username'], "text"));
mysql_select_db($database_MyDatabase, $MyDatabase);
$Result1 = mysql_query($insertSQL, $MyDatabase) or die(mysql_error());
$insertGoTo = "cart.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
{
$insertGoTo = "cart.php";
$updateqtyAmt = $fetchSelectedProduct['qty'] +1;
$updateQty = "UPDATE supermarketcart set qty =".$updateqtyAmt." where sid =".$_POST['id'].";";
mysql_query($updateQty);
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
}
答案 0 :(得分:0)
在将产品添加到购物车之前,您必须检查产品是否已经全部装入购物车。
因此,是psuedo代码:
if product is in shoppincart:
get the shoppingcart ID
update record with parameters ProductID and ShoppingcartID, update Count = Count + 1
else:
// product is not in shopping cart
perform the insert query.