php - 如何使 <option selected ="selected"> 由 MySQL 和 PHP 设置?

标签 php mysql select

如何制作<option selected="selected">由 MySQL 和 PHP 设置?

我的代码:

echo '<select>';
$tempholder = array();
$rs = mysql_query("SELECT * FROM id ORDER BY year");
$nr = mysql_num_rows($rs);
for ($i=0; $i<$nr; $i++){
    $r = mysql_fetch_array($rs);
    //if($year==$r["year"]){ $selected=' selected="selected"'; }//doesn't work so
    if (!in_array($r['year'], $tempholder)){
        $tempholder[$i] = $r['year'];
        echo "<option>".$r["year"]."</option>";//<option$selected>...
    }
}
unset($tempholder);
echo '</select>';

最佳答案

试试这个:

    echo '<select>';
$tempholder = array();
$rs = mysql_query("SELECT * FROM id ORDER BY year");
$nr = mysql_num_rows($rs);
for ($i=0; $i<$nr; $i++){
    $r = mysql_fetch_array($rs);
    if (!in_array($r['year'], $tempholder)){
        $tempholder[$i] = $r['year'];
        echo "<option".(($year==$r["year"])? ' selected="selected"' : '').">".$r["year"]."</option>";
    }
}
unset($tempholder);
echo '</select>';

它不会将状态保存在您必须覆盖的变量中。

我认为真正的错误是 $year=$r["year"] 中的单个等号,而不是代码的其余部分。

关于php - 如何使 <option selected ="selected"> 由 MySQL 和 PHP 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2969762/

相关文章:

php pdo 递减高于已删除值的值

PHP PDO 不更新表并且不产生任何错误

mysql - 在 Windows 中更改默认的 MySQL 用户

mysql - 如何获得mysql中某天之前和某天之后的平均评分?

mysql - 按日期+其他字段对多个字段求和和分组

php - 如何使用 PHPMailer 从 PC 将文件附加到电子邮件

php - 通过 Javascript 和 PHP 添加数值

mysql - 选择前 n 个字符相等的行 (MySQL)

PHP/Laravel - 从两个简单数组或结合这两个数组的关联数组创建一个对象数组

mysql - 在没有 GROUP BY 的聚合查询中,SELECT 列表的表达式 #2 包含非聚合列