В настоящее время я работаю с корзиной покупок. Я бы хотел, чтобы у него не было дубликатов товаров в корзине покупок. Например: Если я нажму на «панду», количество в корзине будет 1. Если я снова нажму на «панду», количество будет изменено на 2 вместо двух предметов «панды» в магазине корзина. Может ли кто-нибудь направить меня? Я новичок в PHP, ваша помощь будет оценена по достоинству. СпасибоКак предотвратить дублирование записей в корзине (PHP)
Вот мой код.
details.php
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$status = $this->checkProductStatus($yourdata)
if ($status){
// write your update query
$updateSQL = sprintf("UPDATE supermarketcart SET qty=%s WHERE id=%s",
GetSQLValueString($_POST['name'], "text"),
GetSQLValueString($_POST['description'], "text"),
GetSQLValueString($_POST['package'], "text"),
GetSQLValueString($_POST['price'], "double"),
GetSQLValueString($_POST['imagename'], "text"),
GetSQLValueString($_POST['username'], "text"));
}
else{
//write your insert query
$insertSQL = sprintf("INSERT INTO supermarketcart (pname, pdescription, package, pprice, pimage, username) VALUES (%s, %s, %s, %s, %s, %s)",
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));
}
$colname_supermarketDetails = "-1";
if (isset($_GET['desc_sel'])) {
$colname_supermarketDetails = $_GET['desc_sel'];
}
mysql_select_db($database_MyDatabase, $MyDatabase);
$query_supermarketDetails = sprintf("SELECT * FROM supermarket WHERE `description` = %s", GetSQLValueString($colname_supermarketDetails, "text"));
$supermarketDetails = mysql_query($query_supermarketDetails, $MyDatabase) or die(mysql_error());
$row_supermarketDetails = mysql_fetch_assoc($supermarketDetails);
$totalRows_supermarketDetails = mysql_num_rows($supermarketDetails);
mysql_select_db($database_MyDatabase, $MyDatabase);
$query_cart = "SELECT * FROM supermarketcart";
$cart = mysql_query($query_cart, $MyDatabase) or die(mysql_error());
$row_cart = mysql_fetch_assoc($cart);
$totalRows_cart = mysql_num_rows($cart);
$colname_supermarketInfo = "-1";
if (isset($_GET['id'])) {
$colname_supermarketInfo = $_GET['id'];
}
mysql_select_db($database_MyDatabase, $MyDatabase);
$query_supermarketInfo = sprintf("SELECT * FROM supermarket WHERE `description` = %s", GetSQLValueString($colname_supermarketInfo, "text"));
$supermarketInfo = mysql_query($query_supermarketInfo, $MyDatabase) or die(mysql_error());
$row_supermarketInfo = mysql_fetch_assoc($supermarketInfo);
}
public function checkProductStatus($data){
// check the if the product already exist against that user
return true
else false
}
Почему вы до сих пор используют 'mysql_ *' методы? Они устарели, дерьмо и были заменены PDO и MySQLi – Bojangles
перед тем, как запрос на вставку проверяет, существует ли элемент в корзине, затем выполните запрос на обновление запроса QTY else insert. –
Где я могу его добавить – user3156220