【问题标题】:select a value in dropdown list from two database tables从两个数据库表的下拉列表中选择一个值
【发布时间】:2016-10-03 05:39:00
【问题描述】:

我想在下拉列表中编辑员工信息,我有两个数据库表,其中有一个共享字段: 在表 1 中,我有很多字段,其中一个是员工 Position,它是一个数字。在 table2 中,我有两个字段:EmpPos(等于 table1 中的 Position)和 PosName。 现在,在下拉列表中,当我添加新员工时,我使用 table2 中的 PosName 填充列表,但将职位编号存储在 table1 中。 问题出在编辑表单中,我在表单中打印 table1 中的所有员工信息以进行编辑,但我不知道如何从关联的 Position 中选择员工的 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>";
        }
        }

谢谢

【问题讨论】:

  • id 似乎不太可能等于 position

标签: php mysql


【解决方案1】:

编写查询以获取位置表中的所有位置:

$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>";

【讨论】:

  • 问题仅在于下拉列表值,我希望打开编辑表单后默认选择存储的值
  • (($Id==$Position) ? 'selected' : '') 这部分显示如果您添加 $id= 员工职位 id $$position = 职位 id 则选择的值
  • 打印$Id & $Position 的值会帮助你调试
猜你喜欢
  • 2014-03-12
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多