Поле выбора: как заполнять годы php

Я пытаюсь заполнить поле выбора в php в течение многих лет в поле рождения. Из запроса задается переменная $ year, и этот конкретный год должен быть выбран в моем поле выбора. Код до сих пор заключается в том, что он просто заполняет годы, но не выбирает год, который хранится в mysql db, знает ли кто-нибудь почему? благодаря

$year = $row['year']; // this comes from a query that is stored in the db <select name="year"><? for ($x = 1920; $x < date('Y'); $x++) { ?><option value=<? echo $x; if ($x == $year) {echo 'selected="selected"';}?>><? echo $x;?></option><? }?> </select> 

Попробуй это:

 $year = (int)$row['year']; // this comes from a query that is stored in the db ?> <select name="year"><?php for ($x = 1920; $x < date('Y'); $x++) { ?><option value="<?php echo $x . '"'; if ($x == $year) { echo ' selected="selected"';}?>><?php echo $x; ?></option><? }?> </select> 

Основная проблема заключалась в том, что вы не закрыли value с двойными кавычками, поэтому был 'selected="selected" . так что вы получили это:

 <option value=1990selected="selected">1990</option> 

Кроме того, перед тегом <select

Похоже, что вы не оставили пробел между значением тегов и выбранной меткой. Попробуйте изменить это:

 <option value=<? echo $x; if ($x == $year) {echo 'selected="selected"';}?>><? echo $x;?></option> 

чтобы:

 <option value="<? echo $x; ?>" <? if ($x == $year) {echo 'selected="selected"';}?>><? echo $x;?></option>