Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: динамически добавляемые поля
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » динамически добавляемые поля

Страниц (1): [1]
 

1. Bio man - 02 Апреля, 2015 - 18:30:42 - перейти к сообщению
Суть вот в чём. Нужно создать форму, в которой будут добавляться некоторые поля по +.
Например, в форме есть поля ФИО, Телефон, E-mail итд.
Телефон и E-mail - динамичные поля, то есть можно добавить аналогичное поле нажав на +.
Вопрос стоит в организации хранения данных в БД. Нужно учесть возможность поиска по всем полям, включая динамически добавленные.

Какие варианты?
2. DeepVarvar - 02 Апреля, 2015 - 18:51:25 - перейти к сообщению
Таблица полей - одна.
Таблица значений - вторая.
Искать значения по второй, возможно с группировкой.
3. LIME - 03 Апреля, 2015 - 03:26:40 - перейти к сообщению
DeepVarvar ты типа EAV предлагаешь?
зачем усложнять?
чем старый добрый 1 к многим не угодил?
телефон с майлом в отдельную таблицу
и к ним еще поле связи с основной таблицей
(Добавление)
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM main_tbl
  2. JOIN phones_mails ON phones_mails.main_id = main_tbl.id
  3. WHERE mail = 'lime@php.su';
  4.  
  5. SELECT * FROM main_tbl
  6. JOIN (SELECT * FROM phones_mails WHERE mail = 'lime@php.su') p_m ON p_m.main_id = main_tbl.id

(Добавление)
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM main_tbl
  2. JOIN (SELECT * FROM phones_mails WHERE mail = 'lime@php.su' GROUP BY main_id) p_m ON p_m.main_id = main_tbl.id
4. DeepVarvar - 03 Апреля, 2015 - 07:53:58 - перейти к сообщению
Я это самое и имел ))

 

Powered by ExBB FM 1.0 RC1