Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Select option (https://javascript.ru/forum/server/55074-select-option.html)

ElshStephan 13.04.2015 07:12

Select option
 
<select name='user_role'>
<option>".$myrow["user_role"] ."</option>";
if($user_role == 0){
echo '<option value='0'>0</option>';
}
echo "<option value='1'>1</option>
</select>

помогите дописать в базе данных есть поле user_role типа Int! и теперь мне надо сделать так если value 0 то в option должно появиться что это ученик а если 1 учитель но не могу сделать условия

laimas 13.04.2015 08:08

INT для 0 и 1 слишком жирно, хватит TINYINT. Но в качестве текста опций 0 и 1, это о чем будет говорить? А значит подходящий тип для этих данных, это ENUM - "ученик" (значение равно 1) и "учитель" (значение равно 2). И в данном случае удобнее были бы радио кнопки.
<label><inpunt value="1" <?=$myrow["user_role"]==1 ? 'checked' : null?>> ученик</label>
<label><inpunt value="2" <?=$myrow["user_role"]==2 ? 'checked' : null?>> учитель</label>

где $myrow["user_role"] - значение ENUM полученное как user_role + 0 user_role запросом.

ElshStephan 13.04.2015 08:32

Спасибо вам! + в карму

laimas 13.04.2015 09:18

Полям тип надо указать. А вообще, для получения списков или групп радиокнопок из полей ENUM/SET удобно пользовательской функцией, в которую передавать аргументы - имя базы/таблицы и поля таблицы ENUM/SET, текущее значение поля, а если получать и SET, значит это массив, и тип html-набора на выходе.
Основой для построения такого набора будет запрос:
$sql = 'SELECT COLUMN_NAME, DATA_TYPE, COLUMN_TYPE 
        FROM INFORMATION_SCHEMA.COLUMNS 
        WHERE TABLE_SCHEMA = "'.$db_name.'" AND TABLE_NAME = "'.$tb_name.'"';


Часовой пояс GMT +3, время: 00:44.