插入两个或多个列并与一行-php -mysql相关联

时间:2017-10-18 08:41:15

标签: php mysql

我有一张表格可以填写该人的性别和工作 如果任何人有两个或更多工作,我如何添加到数据库并与该人员相关?

enter image description here

喜欢将驱动程序添加到列表中

<?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"));
?>

感谢

2 个答案:

答案 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)

您必须为jobsuser_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