Вы забыли на самом деле упомянуть, что идет не так, но ваш код выглядит круглым / тавтологичным.
Вы пишете
$category= $rs2->fields['category']
с последующим
if($category== $rs2->fields['category'])
Конечно, результат этого оператора if
всегда будет истинным, потому что в строке справа над вами две переменные имеют одинаковое значение, присваивая значение одной другой другой!
Я думаю, вам нужно написать
if($rs2->fields['category'] == 1)
в первой строке, а затем заменить 1 на 2 во второй строке и т. Д.? Таким образом вы проверяете значение поля БД по отношению к значению опции.
Полный образец:
<select class="form-control" id="category" name="category" required >
<option value="">Select</option>
<option value="1" <? if($rs2->fields['category'] == 1) { echo 'selected="selected"'; } ?>> PHP </option>
<option value="2" <? if($rs2->fields['category'] == 2) { echo 'selected="selected"'; } ?>> JAVA </option>
<option value="3" <? if($rs2->fields['category'] == 3) { echo 'selected="selected"'; } ?>> C++ </option>
<option value="4" <? if($rs2->fields['category'] == 4) { echo 'selected="selected"'; } ?>> WordPress </option>
</select>