|
|
|
| Имеется поле в базе. Тип ENUM. Как получить все возможные значения этого поля?
Запрос с DISTINCT по этому полю не подходит, т.к. не все возможные значения этого поля могут быть задействованы в базе.
Спасибо. | |
|
|
|
|
|
|
|
для: Хулиган
(16.09.2006 в 23:59)
| | нашел:
DESCRIBE `table1` `fieldName` | |
|
|
|
|
|
|
|
для: Хулиган
(17.09.2006 в 00:21)
| | Несколько раз сработало, а теперь поломалось. Вместо ожидаемой строки:
enum('1k','2k','3k','4k','ch')
запрос DESCRIBE `tblname` `fieldname`
возвращает ерунду: "Resource id #13"
Что это? Почему?
Этот же запрос выполняемый в phpMyAdmin, работает нормально. А из скрипта - нет. | |
|
|
|
|
|
|
|
для: Хулиган
(21.09.2006 в 12:59)
| | Если возвращается "Resource id #13", это значит вы пытаетесь использовать дескриптор, который возвращает mysql_query(), без обработки функциями mysql_result(), mysql_fetch_array() и т.п. Приведите код полностью, если поиск ошибки вызывает затруднение. | |
|
|
|
|
|
|
|
для: cheops
(21.09.2006 в 13:17)
| | спасибо, так и есть. Почему-то решил, что если результат - строка, то через fetch_rows не надо пускать.
$query = "DESCRIBE `$tbl_name` `$field_name`";
$enums = mysql_query($query);
$row=mysql_fetch_array($enums);
$type=$row["Type"];
|
А всегда ли будет соблюдаться порядок следования значений enum'a в выходной строке? Такой, какой был установлен при создании поля? | |
|
|
|
|
|
|
|
для: Хулиган
(21.09.2006 в 20:20)
| | Вы имеете ввиду SET (да, всегда), дело в том, что у ENUM может быть только одно значение из многих, в отличие от SET у которого может быть множество значений из многих. | |
|
|
|
|
|
|
|
для: cheops
(21.09.2006 в 21:30)
| | у меня есть несколько пар полей типа ENUM, и в каждой паре полей выбранная пара значений должна быть постоянной. Чтобы можно было однозначно сопоставить первому значению одного поля именно первое значение второго поля. Это используется например при генерации select'ов:
<option value="1kom">1 комн. квартиры</option>
<option value="2kom">2 комн. квартиры</option>
<option value="3kom">3 комн. квартиры</option>
|
Чтобы 1kom вдруг не перескочило на 2 комн. квартиры.
Пока такого не случалось, но как я понял, лучше переделать поля на SET. | |
|
|
|
|
|
|
|
для: Хулиган
(22.09.2006 в 00:03)
| | А нет, если используете DESCRIBE для формирования тэга select, то ничего менять не нужно, значения поля ENUM будут следовать в том порядке, в котором вы задали их при определении таблицы - спонтанно поменять порядок следования они не могут, так как определяют битовую маску. | |
|
|
|
|
|
|
|
для: cheops
(22.09.2006 в 11:26)
| | тогда вернусь к enum.
Спасибо. | |
|
|
|