Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用MYSQL链接表允许products表中的多个选项_Php_Mysql_Database - Fatal编程技术网

Php 使用MYSQL链接表允许products表中的多个选项

Php 使用MYSQL链接表允许products表中的多个选项,php,mysql,database,Php,Mysql,Database,我正在创建一个购物篮类,希望产品有一个未设置的数量的选择,例如颜色,大小等 我知道我应该使用多个表来存放期权数据,但不知道如何操作。这是我目前的桌子结构 CREATE TABLE IF NOT EXISTS options ( ID varchar(40) PRIMARY KEY, Option int, Value varchar(100), Cost decimal(10,2) ); CREATE TABLE

我正在创建一个购物篮类,希望产品有一个未设置的数量的选择,例如颜色,大小等

我知道我应该使用多个表来存放期权数据,但不知道如何操作。这是我目前的桌子结构

CREATE TABLE IF NOT EXISTS options (
        ID varchar(40) PRIMARY KEY,
        Option int,
        Value varchar(100),
        Cost decimal(10,2)
        );

CREATE TABLE IF NOT EXISTS products (
        ID int PRIMARY KEY AUTO_INCREMENT,
        Title varchar(200),
        Description text,
        Specification text,
        Price decimal(10,2),
        CategoryID int,
        Weight int,
        OptionID int,
        Discount int(2),
        Featured boolean,
        Images text,
        Stock int,
        Related text,
        Offer boolean,
        OfferDetails text,
        Language int
        );
CREATE TABLE IF NOT EXISTS basket (
        `ID` int(11) PRIMARY KEY AUTO_INCREMENT,
        `ProductID` int(11),
        `Quantity` int(11),
        `OptionID` int(11),
        `Cookie` varchar(40)
        );
我想将所有选项存储在选项表中,并通过一个唯一的ID将它们链接到产品

我猜当用户选择一个选项时,我需要另一个表来存储信息。然后使用此表从中获取选择选项数据,以输出到篮子

此外,我需要能够看到相同的产品,即相同的选项和productID是否已经在篮子中,这样我就可以简单地更新数量,而不是添加新行

我可以通过使用大量for循环和query来实现这一点,但我确实想限制这一点

对不起,如果不清楚


提前谢谢

我想你们还有一张桌子给顾客。这些选项适用于产品。您可以为每个产品提供一个或多个选项。这是一种多对一的关系。您可以为每个用户提供多个产品,这也是一种多对一关系。你可以(应该?)打破这些关系

此表(例如称之为
purchase
)将包含与以下内容相对应的列(至少):

您可能会看到,最初的问题是可能有0个或更多选项。为此,您需要另一个表(例如称之为
optSel
)。这将有对应于以下内容的列(至少):

然后,当选择一个选项时,它可以被抛出到
optSel
表中。稍后可以通过连接轻松访问此项。这将选项链接到用户和产品。当然,你可以把它分成不同的部分,这只是一种技术的一个例子

primary key,
customer ID,
product ID
amongst other things.
purchase table primary key, 
option id, 
and other things.