2016-10-03 48 views
0

我想编辑下拉列表中的员工信息,我有两个数据库表,其中有一个共享字段: 在table1中,我有很多字段,其中之一是员工职位这是一个数字。在表2中,我有两个字段:EmpPos(它等于位置在表1中)和PosName。 现在,在下拉列表中,当我添加一个新员工时,我填写表PosName from table2,但在Table1中存储职位编号。 问题是在编辑形式,我打印所有员工的信息,从表1的形式对它们进行编辑,但我不知道如何从它的相关位置在下拉列表中选择员工的PosName 这里是我的代码:从两个数据库表中选择下拉列表中的值

echo" <b>Position: </b> <select name='Position' >"; 
    $sql="SELECT * FROM table1 LEFT JOIN table2 ON table1.Position = table2.EmpPos"; 
     $result = $conn->query($sql); 
     if ($result->num_rows > 0) 
    { 
     while($row = $result->fetch_assoc()) { 
      $PosName=$row["PosName"]; 
     $Id=$row['EmpPos']; 
echo" <option name= '$PosName' value='$PosName' ' . (($Id==$Position) ? 'selected' : '') . '>$PosName</option>"; 
     } 
     } 

感谢

+0

这似乎不大可能,'ID '等于'位置'。 – Strawberry

回答

0

写查询来获取从位置表中的所有位置:

$sql="SELECT * FROM positionTable order by position name asc"; 
$result = $conn->query($sql); 
$Empquery = "Fetch all data related to that employee."; 
echo" <b>Position: </b> <select name='Position' >"; 
if ($result->num_rows > 0) 
{ 
    while($row = $result->fetch_assoc()) { 
     $PosName=$row["PosName"]; 
    $Id=$row['EmpPos']; //it must emp's position id fetch from other query. 
    echo" <option name= '$PosName' value='$PosName' ' . (($Id==$Position) ? 'selected' : '') . '>$PosName</option>"; 
    } 
} 
echo "</select>"; 
+0

这个问题只与下拉列表中的值有关,我希望一旦我打开编辑表单 – user2148116

+0

'(($ Id == $ Position)?'selected':'')''''这个部分显示如果添加$ id = employee position id $ value = position id id –

+0

yes选择的值我尝试过但不起作用 – user2148116

相关问题