SQL组合来自两个表的数据

时间:2014-02-04 23:56:24

标签: php mysql sql

我有两张桌子......

+-----------+-----------+
| employees | positions |
+-----------+-----------+
| id        | id        |
| fname     | pos       |
| lname     |           |
| hphone    |           |
| cphone    |           |
| email     |           |
| posid     |           |
+-----------+-----------+

我想创建一个表单来添加新员工并拥有该职位的下拉列表 这样您就可以从职位表中列出的职位中选择

我知道如何制作下拉框,但我不知道如何设置sql和 如何将其保存为新记录......有人可以帮助我吗?

用于下拉列表的代码是一个名为getpos的函数,它是......

function getpos(){
$sql=mysql_query("SELECT id,pos FROM positions"); 
if(mysql_num_rows($sql)){ 
$select= '<select name="select">';   
while($rs=mysql_fetch_array($sql)){ 
  $select.='<option value="'.$rs['id'].'">'.$rs['pos'].'</option>'; 
  } 
} 
$select.='</select>'; 
echo $select;
}

它工作正常......我称之为

这是我想到的SQL ......它是否正确?

SELECT employees.id, employees.fname, employees.lname, employees.hphone,
employees.cphone, employees.email, employees.posid
FROM employees
INNER JOIN
positions ON positions.posid = employees.posid 

1 个答案:

答案 0 :(得分:1)

使用:

SELECT id, pos FROM positions ORDER BY pos DESC; 

填充下拉列表。这些职位将按降序排列。

我不知道您使用哪种方法进行表单操作(GET / POST)。但是在下一页上,您将检索$_GET['id']$_POST['id']并将其插入您的其他员工(posid)。

然后使用表单中的值插入数据库。

INSERT INTO (fname, flname, hphone,cphone,email, posid 
FROM employees 
VALUES (....values from the form ...); 

您要插入的变量之一是位置ID。

如果要从数据库中选择数据以便在表格中显示它们,您可以使用此查询:

SELECT position.name, employees.fname, employees.flname,
employees.hphone, employees.cphone,employees.email 
FROM employees JOIN positions 
ON employees.posid = posistion.id;