【问题标题】:Avoid Duplication of Products in e-commerce site避免电子商务网站中的产品重复
【发布时间】:2016-02-15 07:11:05
【问题描述】:

我正在使用我最近开始学习的 PHP 和 MySQL 创建一个基本的电子商务网站。我有一个具体的问题。每当我添加两个同名产品时,都会将重复的产品添加到数据库中。有没有办法避免同样的情况,而是增加数量的数字。

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!";

    }

【问题讨论】:

  • 添加商品的代码是什么?

标签: php mysql e-commerce


【解决方案1】:

不推荐在生产环境中使用上述代码,因为它容易受到 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 注入。

【讨论】:

    【解决方案2】:

    通过添加 UNIQUE 约束来更改表

    我不知道你的表结构。添加一些逻辑来更新数量。

    【讨论】:

      【解决方案3】:

      不要为唯一字段使用产品名称。添加一个新的数据库字段:SKU ——它代表“库存单位”。

      使用数据库的 id 字段会很诱人,因为您可以将其设置为自动递增,但我强烈建议不要这样做。许多商家已经拥有自己的产品 SKU,因此您希望能够输入 SKU 值以及其他产品详细信息。并且商家 SKU 中通常包含字母,因此将 db 字段设为 varchar。

      还建议您注册亚马逊卖家中心并阅读他们如何处理“父母”和“儿童”产品。起初它可能看起来过于复杂,但它会为您节省很多时间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-15
        • 2010-09-27
        • 1970-01-01
        • 2014-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多