从数据库中检索数据并将其存储在php的select标记中

时间:2018-07-31 20:18:56

标签: php

我正在更新用户帐户,我的问题是如何获取用户类型的值并将其存储在组合框或选择标记中。这是我的代码:

<select class="form-control" name="user_type" required>
   <option value=''>Select Type</option>
      <?php
        $query = "SELECT * FROM user_types";
        $result = mysqli_query($connections, $query);
        while($rows = mysqli_fetch_assoc($result)){
          $db_id = $rows["user_type_id"];
          $db_desc = $rows["description"];

          echo "<option value='$db_id'>$db_desc</option>";
       }
      ?>
</select>

从这里我可以获取数据库中的所有用户类型。这是我的user_types表。

enter image description here

我的用户表

enter image description here

我的问题是如何根据用户表获取用户类型的ID和值并将其放在选择标记中

enter image description here

这是我无法获得用户类型的值

1 个答案:

答案 0 :(得分:1)

我认为您正在编辑系统中的用户。您希望通过允许登录用户从选择框中进行选择来更改其用户类型。

我建议以下内容:

首先,您需要将“用户类型”表读入数组。数组键必须是user_type_id,值必须是描述。

当您显示user_type_id时,请显示该索引的新数组值。

当您显示此字段进行编辑时,请与原始问题中的代码完全相同,但如果该选项与您正在编辑的用户的用户类型匹配,则将其表示为“已选择”。

<?php 
//$user will have all the data for the user you are editing
$query = "SELECT * FROM user_types";
$result = mysqli_query($connections, $query);
$user_types = array();
while($rows = mysqli_fetch_assoc($result)){
  $db_id = $rows["user_type_id"];
  $db_desc = $rows["description"];
  $user_types[$db_id] = $db_desc;
}


?>
<select class="form-control" name="user_type" required>
   <option value=''>Select Type</option>
      <?php

        foreach($user_types as $id => $desc){
          if ($user['user_type_id'] == $id){
            echo "<option selected='selected' value='$id'>$desc</option>";
          }else{
            echo "<option value='$id'>$desc</option>";
          }
       }
      ?>
</select>

处理提交的表单时,$ _ POST ['user_type']中的值将是与所选用户类型相对应的user_type_id。