2014-01-03 3 views
1

В настоящее время я работаю с корзиной покупок. Я бы хотел, чтобы у него не было дубликатов товаров в корзине покупок. Например: Если я нажму на «панду», количество в корзине будет 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 
} 
+0

Почему вы до сих пор используют 'mysql_ *' методы? Они устарели, дерьмо и были заменены PDO и MySQLi – Bojangles

+0

перед тем, как запрос на вставку проверяет, существует ли элемент в корзине, затем выполните запрос на обновление запроса QTY else insert. –

+0

Где я могу его добавить – user3156220

ответ

0
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")){ 
$status = $this->checkProductStatus($yourdata) 
if ($status){ 
// write your update query 
} 
else{ 
//write your insert query 
} 
} 

public function checkProductStatus($data){ 
// check the if the product already exist against that user 
return true else false 
} 
+0

Ive только что отредактировал – user3156220

+0

Я просто дал вам подсказку .. !! напишите свой запрос в функции checkProductStatus, проверив продукт с базой данных. !! У вас должен быть уникальный ключ продукта или какая-то вещь, поэтому используйте это, чтобы проверять базу данных и возвращать true или false в соответствии с этим.! –

Смежные вопросы