How to make <option selected="selected"> set by MySQL and PHP?
My code:
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>';
In addition to fixing the
=/==gotcha, you can save yourself the array lookup and make the code simpler by asking the database to return each year only once in the query:(You may not need
htmlspecialchars()assuming that’s a numeric year, but it’s good practice always to HTML-escape any plain text you include in an HTML template. You can define a function with a shorter name to do theecho htmlspecialcharsto cut down on typing.)