2017-10-18 43 views
-2

我有一张表格来填写该人的性别和工作 如果任何人有两个或更多的工作,如何添加到数据库中并与该人有关?插入两列或更多列并与一行相关-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")); 
?> 

感谢

+0

使用数组怎么样? 或制作两个表并使用外键链接它们。 –

+2

考虑重新设计您的表 – Ravi

+0

了解规范化和一对多关系 – Jens

回答

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字段中引用您的人员编号。然后你可以简单地使用SQL连接。

SELECT p.name, p.sex, j.job FROM Person p JOIN Jobs j ON p.id = j.Person_ID 
+1

你打我+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柱内。