为PHP表单插入查询

为PHP表单插入查询,php,mysql,sql,insert-query,Php,Mysql,Sql,Insert Query,我正在使用PHP和MySQL,遇到了一个小问题。我试着去研究,想知道该怎么做,但我就是想不出来。我将感谢任何帮助。这是我的问题 我有3个SQL表: Customers cID (primaryKey) email name password ...etc. Products pID (primaryKey) Pname Ptype CustomerRequests requestID(primarykey) cI

我正在使用PHP和MySQL,遇到了一个小问题。我试着去研究,想知道该怎么做,但我就是想不出来。我将感谢任何帮助。这是我的问题

我有3个SQL表:

Customers
    cID (primaryKey)
    email
    name
    password
    ...etc.

Products
    pID (primaryKey)
    Pname
    Ptype

CustomerRequests
    requestID(primarykey)
    cID (foreign key references customer table)
    pID (foreign key references products table)
    quantityRequested
我有一个用PHP处理的HTML表单。这与请求表单类似,因此用户登录并填写请求表单。此表单上的字段如下所示:

选择产品名称、选择数量等。例如,
$quantity=$\u POST['quantity']
。。。因此,表单数据基本上存储在变量中

现在,这是我一直坚持的部分。如何执行SQL
INSERT
查询,以便数据库知道
cID
pID
是什么?即外键值是什么

例如:

$insert = mysql_query(INSERT INTO CustomerRequests VALUES ('THIS WOULD BE BLANK AS ITS AUTOINCREMENTED PROMARY KEY FOR REQUEST ID','HOW WOULD I GET THE cID AUTOMATICALLY HERE','HOW WOULD I GET THE pID HERE','".$quantity."'))
查询使用
INSERT
查询将用户输入存储到数据库中。但是,由于customerID和productID是不同表中的外键,如何编写PHP查询


谢谢您的帮助,如果您需要更多信息,请与我联系。

我认为您应该在显示表单之前检索产品和客户ID。
然后,从表单中获取ID并将其插入第三个表。

我认为您应该在显示表单之前检索产品和客户ID。
然后,从表单中获取ID并将其插入到第三个表中。

我不知道您为什么认为自己有问题。由于客户已登录,因此应知道
cID
。应该知道
pID
,因为您的表单应该使用产品的下拉列表,其中
pID
用作

然后,只需使用这些值执行
插入
,即

<select id="product">
    <option value="pid001">Product One</option>
    <option value="pid002">Product Two</option>
    ... etc. ...
</select>
同样,当您登录用户时,获取他们的
cID
,并将其插入会话


另一个注意事项是,停止使用PHP的
mysql
函数系列。这些已弃用,将从未来版本中删除。它们倾向于SQL注入。您应该在应用程序中使用
mysqli\uu
或PDO。两者都提供参数化查询和预处理语句。

我不知道您为什么认为自己有问题。由于客户已登录,因此应知道
cID
。应该知道
pID
,因为您的表单应该使用产品的下拉列表,其中
pID
用作

然后,只需使用这些值执行
插入
,即

<select id="product">
    <option value="pid001">Product One</option>
    <option value="pid002">Product Two</option>
    ... etc. ...
</select>
同样,当您登录用户时,获取他们的
cID
,并将其插入会话

另一个注意事项是,停止使用PHP的
mysql
函数系列。这些已弃用,将从未来版本中删除。它们倾向于SQL注入。您应该在应用程序中使用
mysqli\uu
或PDO。两者都提供参数化查询和预处理语句。

“Johnny,如果您使用的是Dreamweaver,您的insert语句需要如下所示:if((isset($\u POST[“MM\u insert”])&($\u POST[“MM\u insert”]=“insertForm”){$insertSQL=sprintf(转换为CustomerRequests(产品名称、数量、cID)值(%s、%s、%s)”等

然后使用带有隐藏字段的表单提交信息,例如:

否则,只需忘记Dreamweaver的内容并使用:插入CustomerRequests(productName,quantity,cID)值(bananas,21044)并在表单中使用相同的隐藏字段。您还需要捕获表单中提交的数据并将其保存为变量,就像您已经做的那样:$quantity=$\u POST['quantity']等

由于“代码提交未正确格式化”,我甚至在提交此信息时遇到了很多麻烦,因此我希望您能收到此消息!更改to>,以理解此代码。 祝你好运!

“Johnny,如果你在使用Dreamweaver,你的insert语句需要如下所示:如果((isset($\u POST[“MM\u insert”])和($\u POST[“MM\u insert”]==“insertForm”){$insertSQL=sprintf(转换为客户请求(产品名称、数量、cID)值(%s、%s、%s)”等

然后使用带有隐藏字段的表单提交信息,例如:

否则,只需忘记Dreamweaver的内容并使用:插入CustomerRequests(productName,quantity,cID)值(bananas,21044)并在表单中使用相同的隐藏字段。您还需要捕获表单中提交的数据并将其保存为变量,就像您已经做的那样:$quantity=$\u POST['quantity']等

由于“代码提交未正确格式化”,我甚至在提交此信息时遇到了很多麻烦,因此我希望您能收到此消息!更改to>,以理解此代码。
祝你好运!

。它们不再被维护。请参阅?改为了解,然后使用或-将帮助你决定哪个。如果你选择PDO,…它们将不再被维护。请参阅?改为了解,然后使用或-将帮助你决定哪个。如果你选择PDO,。您好,感谢您的快速回复。很抱歉,这是我的表单。
等等
所以我有点困惑…因为,当用户注册时,我创建了一个会话$\u会话['username']=$username;其中,$username是从登录表单收到的值…因此我不知道该怎么做。因为,当用户登录它创建会话时,我该如何找出cID是什么?谢谢。因为您有一个包含产品信息的表,您应该用该数据填充下拉列表,doncha think?如果您坚持使用d拥有这条路,那么你需要将客户和产品表加入到
INSERT
查询中。你只会让你的生活变得艰难。好吧,当然可以。正如我提到的产品表一样…ProductID、ProductName、ProductTYpe..你认为我的