从数据库中获取数据 为下拉框选择默认值


get data from database to select a default value for the drop down box?

所以我有一个表单的选择选项...它是PHP回声的一部分,这就是使用单引号的原因。

<select>
          <option value='1'>1</option>
          <option value='2'>2</option>
          <option value='3'>3</option>
          <option value='4'>4</option>
          <option value='5'>5</option>
          <option value='6'>6</option>
          <option value='7'>7</option>
          <option value='8'>8</option>
          <option value='9'>9</option>
</select>   

这很好,我可以选择东西....但是我想从数据库中获取数据以根据数据库中的记录设置默认值(我不想从数据库中填充整个下拉列表!),但是保留下拉列表,以便用户仍然可以选择其他选项如果数据库中的选项不同。

我可以使用此代码从数据库中获取数据,该代码有效...但不知道如何让它做我想让它做的事情......

<option value=". $row['1'] .">". $row['1'].    "</option>

有什么想法吗?

詹姆斯

$selected = 3;
$i = 0;
while( $i < 10 ){
 $i++;
echo "<option value='". $row[ $i ] ."' 
 ".($row[ $i]==$selected?'selected="selected"':"").">". $row[ $i ]."</option>";
}
首先,

您使用查询从数据库中提取默认值(我假设这是电影或文章或其他内容的用户评级),然后循环浏览 10 个不同的可能值。当值与默认值匹配时,它将向字符串添加 selected='selected'。

echo "<select>";
$result = mysqli_query($db, "SELECT rating FROM movies WHERE user='$user'");
$row = mysqli_fetch_object($result);
for($i = 1;$i => 10;$i++){
    if($i == $row->rating){
        echo "<option selected='selected' value='$i'>$i</option>";
    }else{
        echo "<option value='$i'>$i</option>";
    }
}
echo "</select>";

它与另一个答案中的答案相同,但这应该更容易阅读和理解。(无论你像我一样使用 for 循环,还是像 John 一样使用 while 循环,都没关系,它们做同样的事情)

更新:删除您正在编写的回显并放入我的代码中,请记住修改MySQL查询。