我有一张表格可以填写该人的性别和工作 如果任何人有两个或更多工作,我如何添加到数据库并与该人员相关?
喜欢将驱动程序添加到列表中
<?php
$insertjob = sprintf("INSERT INTO `user` (id, name, gender, job) VALUES (%s, %s, %s)",
GetSQLValueString($_POST['name'], "text"),
GetSQLValueString($_POST['gender'], "text"),
GetSQLValueString($_POST['job'], "text"));
?>
感谢
答案 0 :(得分:2)
您应该使用两张桌子。
做以下事情:
表1:人
ID | Person | Sex
表2:工作
ID | Person_ID | Job
现在您可以使用外键了。如果你有一个人,让我们给杰克起名并说他有两份工作,你可以做以下事情:
个人表:
ID | Name | Sex
1 | Jack | m
在工作表中:
ID | Person_ID | Job
1 | 1 | Teacher
2 | 1 | Driver
所以你要做的就是在你的工作表的Person_ID
字段中引用你的人的ID。然后,您可以使用SQL连接。
SELECT p.name, p.sex, j.job FROM Person p JOIN Jobs j ON p.id = j.Person_ID
答案 1 :(得分:0)
您必须为jobs
和user_jobs
创建一个单独的表格,如:
job_user
表
+----+---------+--------+
| id | user_id | job_id |
+----+---------+--------+
| 1 | 5 | 1 |
+----+---------+--------+
| 2 | 5 | 2 |
+----+---------+--------+
| 3 | 5 | 3 |
+----+---------+--------+
jobs
表
+--------+----------+
| job_id | job |
+--------+----------+
| 1 | teacher |
+--------+----------+
| 2 | driver |
+--------+----------+
| 3 | engineer |
+--------+----------+
users
表
+---------+-------+--------+
| user_id | name | gender |
+---------+-------+--------+
| 1 | John | m |
+---------+-------+--------+
| 2 | Jane | f |
+---------+-------+--------+
| 3 | Jim | m |
+---------+-------+--------+
| 4 | Jones | m |
+---------+-------+--------+
| 5 | Garry | m |
+---------+-------+--------+
HIGHLY DISCOURAGED
或者您可以在json_encode($_POST['jobs'])
列中转储jobs
。