2016-02-14 3 views
1

Я создаю базовый сайт электронной коммерции, используя PHP и MySQL, которые я недавно начал изучать. У меня есть конкретная проблема. Duplicate Products добавляются в базу данных всякий раз, когда я добавляю два продукта с тем же именем. Во всяком случае, чтобы избежать того же, и вместо этого увеличивайте цифру на количество.Избегайте дублирования продуктов на сайте электронной коммерции

else{ 
     $product_image = addslashes(file_get_contents($_FILES['fileField']['tmp_name'])); 

     include_once("../scripts/connect.php"); 

     $sql = mysql_query("INSERT IGNORE INTO products(name, brand, category, sizes, description, price, quantity, product_image, date_added) VALUES('$product_name','$product_brand','$product_category','$product_sizes','$product_description','$product_price','$product_quantity','$product_image', now())"); 

     $id = mysql_insert_id(); 

     $msg = "Success!"; 

    } 
+1

Что такое код для добавления продуктов? – codisfy

ответ

0

изменить таблицу, добавив ограничение уникальности

Я не знаю структуры таблицы. Добавьте некоторую логику для обновления количества.

2

Использование вышеуказанного кода в производстве не рекомендуется так как он уязвим для инъекции sql. попробуйте использовать UNIQUE ограничения из базы данных или использования:

alter table products add unique index(name, brand, category, sizes, description, price, quantity, product_image, date_added); 

советов:

  • mysql_ функция устарела и была удалена из PHP 7. использования mysqli_ функции или PDO вместо этого.
  • использовать подготовленные заявления, чтобы избежать инъекции sql.
0

Не используйте названия продуктов для уникального поля. Добавить новое поле db: SKU - это означает «единица хранения запасов».

Было бы заманчиво использовать поле id базы данных, потому что вы можете настроить его на автоматическое увеличение, но я настоятельно рекомендую не делать этого. многие торговцы уже имеют свои собственные SKU для своих продуктов, поэтому вы хотите иметь возможность вводить значение SKU вместе с другими деталями продукта. и купечество SKUs часто имеют буквы в них, поэтому сделайте поле db varchar.

также предлагаю вам зарегистрироваться на центральном рынке амазонки и прочитать, как они делают продукты «Родитель» и «Ребенок». это может показаться чересчур сложным, но это сэкономит вам столько времени.

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