我在INSERT INTO查询中遇到问题, 在注册表单中,当用户输入用户名并选择部门/中心作为助理时, 我想将该UserName插入表助推器。
我尝试的是什么;
$query14 = "INSERT INTO bursary (UserName) VALUES
('$UserName') WHERE DepartCent='Bursary'";
$result14=mysql_query($query14);
我的表名是助学金,看起来像;
UserID UserName
1 ( ) <---- I want only UserName that choose department/center as bursary
请有人帮我解决这个问题,谢谢。
答案 0 :(得分:0)
你可以:
只有在尝试更改现有行的值时,才有必要指定WHERE子句以使数据库知道要更改的值。 编辑:你能再次解释一下你想要实现的目标吗?您是否只想填写填写表单的一些用户?即那些选择助学金作为他们的部门? 为什么不将表结构更改为: 表部门: 部门名称,部门ID
表用户: 用户名,部门ID(部门的外键)
编辑Nr。 2:这样做的方法是规范化表格结构。假设发生以下事情之一:
所以要走的路是设计你的桌子,以便他们分开不同的东西&#34;在你的程序中。你正在使用的一类是部门(助学金,......)另一类是用户。作为一个粗略的起点尝试为每个表创建一个表,并尝试使用所谓的外键连接表。读它是这样的:
稍后您可以加入这些表以找出X部门的所有用户,......
从User u INNER JOIN Department d ON中选择u.userName,d.departmentName u.departmentId = d.departmentId
这会显示所有用户及其相关departmentName的名称
答案 1 :(得分:0)
INSERT查询意味着添加尚未存在的数据。如果要插入从查询派生的值,则需要使用实际查询来获取它。 WHERE子句失败,因为在插入一行之前没有要检查的行。
确实没有足够的信息来确定你想要做什么,但如果我们继续你的问题的这一部分:
“我只想选择部门/中心的用户名作为助理”
然后你可能正在寻找一个INSERT..SELECT(假设你已经将数据插入到其他用户表'your_user_table')
INSERT INTO bursary(UserName)
SELECT UserName from your_user_table
WHERE DepartCent='Bursary';