Php mysqli列表框

Php mysqli列表框,php,mysql,mysqli,Php,Mysql,Mysqli,我有一个列表框,有两个问题 1我怎么还能有文字说选择一个国家? 第二,在我的更新页面上,它显示了正确的国家,但不允许更改,因为它不会在编辑页面中列出任何其他国家 <?php $sql = "SELECT countries.country_id, countries.country_name, users.user_country FROM countries, users WHERE users.user_country = countries.count

我有一个列表框,有两个问题

1我怎么还能有文字说选择一个国家? 第二,在我的更新页面上,它显示了正确的国家,但不允许更改,因为它不会在编辑页面中列出任何其他国家

<?php
        $sql = "SELECT countries.country_id, countries.country_name, users.user_country FROM countries, users
        WHERE users.user_country = countries.country_id";
        $result = query($sql);
        ?>
        <select class="form-control input-lg box" id="country" name="country">
        <?php
        $i = 0;
        while (($row = mysqli_fetch_assoc($result)) != false) {
            ?>
        <option value="<?=$row["country_id"];?>"><?=$row["country_name"];?></option>
        <?php
            $i ++;
        }
        ?>


好的,要使数据库调用不提供默认选项,您只需要一个HTML语句,如

<option value="">Select a country</option>

当然,可以通过多种方式定义$selected,包括在条件赋值语句中。我省略了$I计数器,这里不需要它,但是,当然,您以后可能需要它。

(1)在您的
之后和php代码/循环之前添加
选择一个国家。(2) 如果不在更新页面上查看代码,我们将无法帮助识别您的问题。最有可能的情况是,虽然您正在使用发布的
国家(/
国家id
)值执行
选择
查询,但您只选择了该值。相反,你可以做这样的选择,只需在与发布的
国家(country)值匹配的行上设置
selected=“selected”
(/
country\u id
)值。谢谢Robin Richmondi无法使while循环工作,但我正在工作
while (($row = mysqli_fetch_assoc($result)) != false) {
  if ($usercountryID == $row["country_id"]) $selected = " selected";
  else $selected = "";

  echo "<option value='{$row['country_id']}$selected>{$row['country_name']}</option>\n";
}