Forum Webscript.Ru

Общие => Базы данных => Тема начата: от 02 Января 2002, 14:32:46

Название: Обработка поля с типом enum?
Отправлено: от 02 Января 2002, 14:32:46
В таблице имеется:

CREATE TABLE table1(
...

test ENUM(\'first\',\'second\',\'third\'),
...
)


Вопрос?

Как мне программным путем, на PHP забрать в массив ети значения(first,second,third)?
Название: Обработка поля с типом enum?
Отправлено: ThE0ReTiC от 02 Января 2002, 17:29:32
Если честно, вопроса немного не понял. :( Тип ENUM задает варианты возможных значений данного поля. Т.Е. в твоем примере поле test может принимать значения first, second или third, а также их числовые эквиваленты.
Другими словами ENUM задает множество возможных значений поля.
 О каком массиве идет речь?
Название: Обработка поля с типом enum?
Отправлено: Dj Fly от 02 Января 2002, 17:29:57
А немного поточнее - Эти First, second, third - однотипны(ну типа там vasea1, vasea2, vasea3)? Или требуется что-то типа Vasea, jora, petea?
Название: Обработка поля с типом enum?
Отправлено: ThE0ReTiC от 02 Января 2002, 17:31:58
2Dj Fly : Похоже зодача в том, чтобы хранить массив значений в одном поле. Или нет?
Название: Обработка поля с типом enum?
Отправлено: vladsu от 02 Января 2002, 18:36:59
Hi.



...
test ENUM(\'vasea1\', \'vasea2\', \'vasea3\'),
...



...
test ENUM(\'vasea\', \'jora\', \'petea\'),
...


Оба варианта правильны, это означает, что когда Вы будете делать insert для первого варианта Вы не присвоите полю test значение \'vasea\', но присвоите \'vasea2\' или \'2\', что эквивалентно.

Но как я понял в начале вопрос заключался в том, как выяснить SQL-запросом какие значения допустимы и как затем это увидеть в ПХП-программе.
Название: Обработка поля с типом enum?
Отправлено: ThE0ReTiC от 03 Января 2002, 00:03:04
Непонятно. Предлагаю дождаться ответа автора
Название: Обработка поля с типом enum?
Отправлено: Dj Fly от 03 Января 2002, 00:59:13
Короче, если нужно внести значения из того, что введёт пользователь на странице, то нужно предположим использовать форму:




                                 ...

mysql_query("create table test(super ENUM(\'s1\',\'s2\',\'s3\'....\'sn\'))");
?>


Или:

Таким макаром из хтмл мона передавать массив и делать с ним всё, что угодно в php
Название: Обработка поля с типом enum?
Отправлено: Dj Fly от 03 Января 2002, 01:04:09
А может просто надо запросом MySQL узнать возможные значения поля? Вчитайтесь в вопрос - очень похоже на то...

Хм... действительно как :-)))))
describe table :-)))
Название: Обработка поля с типом enum?
Отправлено: Dj Fly от 03 Января 2002, 01:28:51
Если так, то вот скрипт, дающий полное описание таблицы MySQL: Expecially for you :-))) :


$hostname = "хост";
$username = "логин";
$password = "пароль";
$dbName = "имябазы";
$table="имятаблицы";

if(!MYSQL_CONNECT($hostname,$username,$password))
{ echo "Не могу соединиться с базой $dbName
"; exit; }
if (!mysql_select_db("$dbName")) {echo "cant connect";}
?>


   
   
   
   
   
   
 

$result=mysql_query("describe $table");
$n=mysql_num_rows($result);
for($i=0;$i<$n;$i++)
{
 $field=mysql_result($result,$i,\'Field\');
 $type=mysql_result($result,$i,\'Type\');
 $null=mysql_result($result,$i,\'Null\');
 $key=mysql_result($result,$i,\'Key\');
 $default=mysql_result($result,$i,\'Default\');
 $extra=mysql_result($result,$i,\'Extra\');
?>
 
   
   
   
   
   
   
 
}
?>





Ну а теперь делай всё, что хочешь со значениями...
Ведь если ты их вывел print-ом, то и в форму загонишь...
Название: Спасибо Dj Fly !!!
Отправлено: от 03 Января 2002, 10:09:55
Твои пример мне помог ;)
FieldTypeNullKeyDefaultExtra