Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > создание радиокнопок по полю enum()


Автор: del3d 9.8.2008, 11:29
Всем здрасти!

Столкнулся с такой проблемой..
Имеется таблица:
Код

CREATE TABLE `test` (
  `color` enum('red','green','blue'));

Хочу на PHP написать скрипт, который из этого поля формирует группу из 3-х радиокнопок..
user posted image
Подскажите, плиз, как это можно сделать.. и вообще, можно ли?

Автор: Wolf1994 9.8.2008, 11:46
Сделать SELECT и вывести mysql_fetch_assoc'ом значения колонки в input type="radio", в HTML.

Автор: bars80080 9.8.2008, 11:51
 smile вопрос в разделе mysql


так пиши скрипт, что сложного?
выборка - цикл { печать чекбоксов }

Автор: del3d 9.8.2008, 11:56
Не понял.. SELECT'ом что выбрать?
Надо же как-то тип поля прочитать и "выдрать" из него red, green и blue..

можно, конечно написать типа:
Код

SHOW COLUMNS FROM `test`.. 

и оттуда обрезать все лишнее.., но это как-то не красиво..

Добавлено через 2 минуты и 10 секунд
Знаю я как данные выбирать из таблицы...
Как мне обратиться к типу поля??

Добавлено через 6 минут и 43 секунды
У меня куча таблиц со множеством полей типа enum..
И постоянно добавляются новые таблицы..
Не создавать же мне для каждого поля свою скрипт..
Надо, чтобы радиогруппы сами делались по типу поля..

Автор: skyboy 9.8.2008, 12:41
Цитата(del3d @  9.8.2008,  10:56 Найти цитируемый пост)
Как мне обратиться к типу поля??

если у тебя данные одни и те же(к примеру, "да" и "нет"; "мужской" и "женский"), то зачем тебе информация о перечислении? просто вбей в РНР-код необходимые значения.
если список вариантов может меняться, то почему, скажи мне, ты не сделал отдельную таблицу?
если тебе очень сильно хочется идти по выбранному пути и набивать шишки: используй information_schema.columns или show columns.

Автор: del3d 9.8.2008, 17:14
Я пишу сайтдля проведения анкетирования.. с возможностью добавлять новые анкеты,
..так вот, создание новой анкеты предполагает создание новой таблицы для сохранения результатов..
анкета состоит из вопросов, каждый из которых может быть как числом (int), текстом (text), выбором из нескольких вариантов одного (enum) или нескольких вариантов (set)...
..в дальнейшем, скрипт читает структуру этой таблицы и формирует HTML-форму (анкету) для заполнения..

Подскажите, я вообще хоть верно мыслю или это полный бред??
Благодарен за любые замечания.

Автор: skyboy 9.8.2008, 17:23
Цитата(del3d @  9.8.2008,  16:14 Найти цитируемый пост)
создание новой анкеты предполагает создание новой таблицы для сохранения результатов

я потрясен.
Цитата(del3d @  9.8.2008,  16:14 Найти цитируемый пост)
как числом (int), текстом (text)

человек может ввести введет 245 как число или как текст? это в кавычках, что ли? все равно ты сравниваешь ответ с эталонным. зачем тебе ещё "тип число"? вообще говоря, все сводится либо к вопросам с ограниченным числом вариантом ответов, либо со свободным вводом ответа(который, как очевидно, проверяться будет уже вручную), либо с неким набором вариантов ответа и возможностью ввода ответа вручную(для развития творческой мысли). если так подумать, то любой вопрос предполагает наличие вариантов ответа(0 и более) и возможность/невозможность вольного ввода ответа.
можно отказаться от вольного ответа вообще.
можно добавить к полю "значения ответа" поле "используется свободный ввод ответа" . тогда значение в поле "значение ответа" будет либо самим текстом ответа, либо индексом варианта(в зависимости от значения поля "используется свободный ввод ответа"). можно вообще индексы выбранных вариантов и вольный ввод ответа хранить отдельно. но не в количестве таблиц, равном количеству анкет. зачем?

Автор: del3d 9.8.2008, 20:44
Спасибо, skyboy, большое... прочитал Ваш ответ и все в голове устаканилось..
А то я тут такого понаделал.. сам аж запутался..
Всю структуру БД переделал.. зато разобрался наконец как все будет (я надеюсь) работать..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)