Управление атрибутами полей формы: имена полев БД, управление атрибутами в шаблоне?

Гриша К.

Новичок
Управление атрибутами полей формы: имена полев БД, управление атрибутами в шаблоне?

Здравствуйте.

Проектирую таблицу БД интернет-магазина, содержащую имена полей формы данных о заказчике.
Для заполнения, поля формы будут выводиться на странице сайта, в зависимости от типа плательщица (юр.лица / физ.лица / ...) и способа доставки (Москва / МО / Россия / ...).
PHP:
Вариант таблицы:
FILDS (
fild_id,		#ИД поля 
customer_type_id, 	#ИД типа плательщика
delivery_type_id, 	#ИД способа доставки
fild_title, 		#Заголовок поля (Имя / Телефон / ...)
fild_requerid	#Флаг обязательного поля
)
В шаблоне данные поля буду выводиться в цикле.

Проблема заключается, в том, чтобы сделать наиболее удобное управление атрибутами полей формы (type, name, и т.д.) и проверка полей формы регулярными выражениями.

---------------
Есть такой вариант, добавить в таблицу FILDS, столбец содержаший имя поля формы (name) - fild_name.
Получается что для разных вариантов формы, поля могут иметь разные заголовки, но одинаковые имена,
Например: для физ.лица заголовок поля: "E-mail", для юр.лиц - "E-mail организации",
но имя поля одно e-mail.
В результате: при выводе полей циклом в шаблоне, можно сделать условие, что поле E-mail должно быть type="INPUT", maxlength="4545" и т.д. И соответственно в приложении таким же образом можно проверить регулярное выражение.
По fild_id делать такие проверки, не вариант.

Но получается так, что все же при добавлении поля в таблицу БД, например через веб-интерфейс, при необходимости управления атрибутами поля формы, придется лезть в код (этой будет проблемой, для не программиста).
В принципе в итоге получается меня беспокоит только последняя проблема, в остально вроде решение есть.
---------------

Я предполагаю, чтобы такого рода задачи довольно распространены (хотя в поиске, нашел только частичные ответы на вопросы), и поэтому написал на форум, ожидая что получу советы от пользователей, которые решили эту задачу для себя.
 

Фанат

oncle terrible
Команда форума
таблица не должна содержать имена полей формы.
и в цикле выводить ничего не надо.

Лучше не полениться, и нарисовать форму в шаблоне руками.
Это будет в миллион раз проще, чем надрывая пупок ваять монстра в тыщу строк, который будет будет рисовать форму размером в 10.
 

Гриша К.

Новичок
Фанат, спасибо за ответ.
Я находил ваши сообщения в некоторых темах в поиске по данному вопросу,
я понял вас и согласен с вами.

Но почему я решил то хранить имена полей в БД, (отсюда и пошла вся эта замороч):
пользователь заполнил форму, при заказе товара,
в итоге мне нужно сохранить в БД имена этих полей, чтобы затем, при просмотре заказ, видеть что он заполнил.
Я могу сохранить в БД название полей формы (name): name, phone, address, ..., тогда при выводе данных заказа, мне нужно будет определять заголовки полей (либо при записи данных в БД):
if(name == 'name') echo 'Ф.И.О плательщика';
или вообще хранить hidden, с именами каждого поля, и просто эти имена записывать в БД.

Пока в данном случае я вижу только такой вариант.
Скажите, какой вариант имеете в виду вы (Первую часть вашей идеи я понял, а при описанной выше ситуации как вы поступаете)?
 

Фанат

oncle terrible
Команда форума
в итоге мне нужно сохранить в БД имена этих полей,
что за бред?
где ты собрался хранить эти "имена полей"?
имена полей не хранят! зачем их хранить, если они и так в базе есть?
 

Гриша К.

Новичок
Т.е. вы имеет в виду, такой вариант?:
в БД, содержаться имена полей персональных данных пользователя (1/Имя, 2/Телефон, 3/Адрес - не выводятся в шаблоне, в шаблоне ввожу вручную),
при записи данных введенных пользователем, я просто указваю в запросе, какие данные в какое поле записываются (SET 1 = '$name').
При необходимости добавления нового поля, записываю поле в БД, создаю соответсвующее поле в шаблоне.
 

Фанат

oncle terrible
Команда форума
в БД не содержатся имена полей!
в БД содержится ТАБЛИЦА. в которой есть ПОЛЯ. Имена полей таблицы не имеют никакого значения.
значения полей формы записываются в поля таблицы.
 
Сверху