PHP MySQL添加了另一行功能

时间:2011-08-10 02:50:41

标签: php mysql foreign-keys

我开始学习PHP;

我的数据库中有两个表:

  1. 包含Brand_ID,Brand_Name和的品牌列表 Brand_Description。
  2. 包含Line_ID,Line_Name。
  3. 的产品系列列表

    我想创建一个名为Offered Products的第三个表,其中包含Offer_Id,Brand_ID,Line_Name - 如何使用外键管理它?

    创建表后,我想创建一个php页面,让用户通过

    填充第三个表
    1. 从下拉列表中选择品牌
    2. 从下拉列表中选择行名称
    3. 旁边有一个按钮"添加行" - 点击时会显示 第一个下面的另一行,以便再次执行数字1和2 等等。
    4. 还存在一个保存按钮,点击后最终会保存 我的数据库上的记录。
    5. 我怎么能准确地说这个?请帮忙

1 个答案:

答案 0 :(得分:1)

创建表格。

您的第三个表只需存储Line_IDBrand_ID以及(无论出于何种原因)您还需要Offer_ID

CREATE TABLE `Offered Products` (
    /* define columns */
    Offer_ID  INT NOT NULL AUTO_INCREMENT,
    Brand_ID  INT NOT NULL,
    Line_ID   INT NOT NULL,

    /* define primary key */
    PRIMARY KEY (Offer_ID)

    /* define foreign keys */
    FOREIGN KEY Brand_ID (Brand_ID)
        REFERENCES `Brands List` (Brand_ID)
    FOREIGN KEY Line_ID (Line_ID)
        REFERENCES `Lines List` (Line_ID)
);

这假设Lines List表(带空格)和Brand List表分别将Line_IDBrand_ID定义为主键。

创建表单。

使用HTML和PHP设计表单。从相应的表中填充每个列表。我不会为此提供代码;它应该是直截了当的。

插入表格。

INSERT INTO `Offered Products` (Brand_ID, Line_ID) VALUES (###, ###)

###代表HTML表单中的ID号。

加入表格。

要获取您可以加入的所有表格中的信息,如下所示。

SELECT * FROM `Offered Products` as op 
    JOIN `Brand List` as bl ON bl.Brand_ID = op.Brand_ID
    JOIN `Line List` as ll on ll.Line_ID = op.Line_ID

其他注释。

要在MySQL中使用外键,您需要使用InnoDB引擎。使用myisam将不允许外键,但您仍然可以加入表格,以实现类似的结果。

如果您确实这样做,请避免在表名中使用空格。