我正在使用数据库,我正在使用添加到购物车的机制。现在我想要一个特定的客户登录,输入他的详细信息,然后继续购物。当我想在购物车表格中输入客户详细信息时,我不确定我的查询应该是什么。
我的表是:
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")."')
这里的代码是从产品表获得的 任何有关如何插入外键约束的帮助将不胜感激。感谢。
答案 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)
我想工作流程是这样的:
一旦客户登录该站点,您将验证给定的详细信息并检查您的数据库。如果是真的,你会将它们存储到 会议。比如说,
$_SESSION['Cid'] = the_id_of_the_logged_in_user;
$_SESSION['username'] = the_username_of_the_logged_in_user;
当用户向购物车添加内容时,您从会话中获取客户ID($ _SESSION ['Cid'])并存储到购物车表
而且就是这样。
当客户向购物车添加内容时,您可以从会话中获取客户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")."')