在表中输入外键

时间:2016-04-15 08:06:17

标签: php mysql

我正在使用数据库,我正在使用添加到购物车的机制。现在我想要一个特定的客户登录,输入他的详细信息,然后继续购物。当我想在购物车表格中输入客户详细信息时,我不确定我的查询应该是什么。

我的表是:

CREATE TABLE customer ( 
    Cid int(11) NOT NULL AUTO_INCREMENT, 
    Name varchar(255) DEFAULT NULL, 
    Address varchar(255) DEFAULT NULL, 
    Phone varchar(11) DEFAULT NULL, 
    PRIMARY KEY (Cid) 
    ) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=latin1
CREATE TABLE cart ( 
    ID int(11) NOT NULL AUTO_INCREMENT, 
    cid int(11) DEFAULT NULL, 
    pid varchar(11) NOT NULL, 
    quantity int(11) NOT NULL, 
    PRIMARY KEY (ID), 
    KEY cid (cid), 
    CONSTRAINT cart_ibfk_1 FOREIGN KEY (cid) REFERENCES customer (Cid) 
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1                                   

我以前在没有客户登录详细信息的情况下运行的查询是

INSERT INTO cart (pid, quantity) VALUES ('".$row{'code'}."', '".filter_input((INPUT_POST), "quantity")."') 

这里的代码是从产品表获得的 任何有关如何插入外键约束的帮助将不胜感激。感谢。

2 个答案:

答案 0 :(得分:0)

客户登录后,您将获得客户ID,因此请更新购物车表

 INSERT INTO cart (pid,cid, quantity) VALUES ('".$row{'code'}."', '".<customerid>."', '".filter_input((INPUT_POST), "quantity")."') 

您可以在登录后获取from会话,您应该将记录的用户ID存储在会话中。

以下是步骤:(请考虑sql注入和安全问题) 在file1.php中

<?php
session_start();
$sql = "<your insert query> to insert data in customer table"
$_SESSION["cid"] = mysqli_insert_id();

在fil2.php中

<?php
    $sql = " INSERT INTO cart (pid,cid, quantity) VALUES ('".$row{'code'}."', '".$_SESSION["cid"]."', '".filter_input((INPUT_POST), "quantity")."')"

答案 1 :(得分:0)

我想工作流程是这样的:

  1. 客户在您的网站注册。
  2. 成功注册后,您将其详细信息保存到客户表中。所以在表中你有像cid这样的值 用户名,     密码等(根据您的表架构,我没有看到任何此类字段。     你如何制作登录?)
  3. 一旦客户登录该站点,您将验证给定的详细信息并检查您的数据库。如果是真的,你会将它们存储到     会议。比如说,

        $_SESSION['Cid'] = the_id_of_the_logged_in_user;
        $_SESSION['username'] = the_username_of_the_logged_in_user; 
    
  4. 当用户向购物车添加内容时,您从会话中获取客户ID($ _SESSION ['Cid'])并存储到购物车表

  5. 而且就是这样。

    当客户向购物车添加内容时,您可以从会话中获取客户ID

          $customerId = $_SESSION['Cid']; //assuming that you store  it to session as $_SESSION['customerId'] = 23; (where 23 is the id of the cutomer)
    

    并保存到数据库

           INSERT INTO cart (pid,cid, quantity) VALUES ('".$row{'code'}."', '".$customerId."', '".filter_input((INPUT_POST), "quantity")."')