为PHP表单插入查询
我正在使用PHP和MySQL,遇到了一个小问题。我试着去研究,想知道该怎么做,但我就是想不出来。我将感谢任何帮助。这是我的问题 我有3个SQL表:为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
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']
。。。因此,表单数据基本上存储在变量中
现在,这是我一直坚持的部分。如何执行SQLINSERT
查询,以便数据库知道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..你认为我的