Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вставка данных в БД из динамической формы(массива), обработка массива и структура базы 
:(
    Опции темы
cyberduck
  Дата 28.3.2008, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 28.3.2008

Репутация: нет
Всего: нет



доброе времени суток!

существует динамическая форма (могут добавлятся куча дополнительных полей характеристик):
Код

<html>
<head>
<title></title>
<meta name="generator" http-equiv="Content-Type" content="text/html; charset=utf-8">
<?
require_once('sexp.php');

?>

<script language="javascript">
var items=0;
var items2=0;

function AddItem() {
  div=document.getElementById("charact_name");
  button=document.getElementById("add");
  items++;
  newitem="<p>Дополнительная характеристика " + items + ":<br></p>";
  newitem+="выбрать:<select name=charact_name"+items+"><option value=<?
                    $charact_names_array = get_all_charact_name($charact_name_id);
                    display_charact_name_select($charact_names_array, @$charact_name_id);
                  ?></option></select><br><p>или ввести:<input type = 'text' name =charact_name_dop"+items+" size = '50' maxlength = '255' value = ''></p><br>";
   
 
  newnode=document.createElement("span");
  newnode.innerHTML=newitem;
  div.insertBefore(newnode,button);
}

function AddItem2() {
  div=document.getElementById("charact_proj");
  button=document.getElementById("add");
  items2++;
  newitem="<p>Дополнительная характеристика " + items2 + ":<br></p>";
  newitem+="выбрать:<select name=charact_proj"+items2+"><option value=<?
                    $charact_proj_array = get_all_charact_proj($charact_proj_id);
                    display_charact_proj_select($charact_proj_array, @$charact_proj_id);
                  ?></option></select><br><p>или ввести:<input type = 'text' name =charact_proj_dop"+items2+" size = '50' maxlength = '255' value = ''></p><br>";
   
 
 
  newnode=document.createElement("span");
  newnode.innerHTML=newitem;
  div.insertBefore(newnode,button);
}
</script>


</head>
<body>
<iframe id = "iframename" name="iframename" frameborder="" class = "hidden" width = "0" height = "0"></iframe>
<form enctype = "multipart/form-data" name="nadd" method="post" action = "naddproc.php">
<p>Заполнение карточки названия:</p>
<p>Название:</p>
<p>ввести: <input type=text name=name id=name size='50' value=''></p>

<div ID="charact_name">
<p>Характеристика названия:</p>
<p>выбрать:<select name=charact_name id=charact_name><option value=<?
                    $charact_names_array = get_all_charact_name($charact_name_id);
                    display_charact_name_select($charact_names_array, @$charact_name_id);
                  ?></option></select></p>
                  
<p>или ввести:<input type = "text" name = "charact_name_dop" size = "50" maxlength = "255" value = ""></p>
</div>
<p><input type="button" class = 'button' onClick="AddItem();" value="добавить еще одну характеристику"></p>

<p>Тип проекта:</p>
<p>выбрать:<select name=type_proj id=type_proj><option value=<?
                    $type_proj_array = get_all_type_proj($type_proj_id);
                    display_type_proj_select($type_proj_array, @$type_proj_id);
                  ?></option></select></p>
<p>или ввести:<input type = "text" id = "type_proj_dop" name = "type_proj_dop" size = "50" maxlength = "255" value = ""></p>
<div ID="charact_proj">
<p>Характеристика проекта:</p>
<p>выбрать:<select name=charact_proj id=charact_proj><option value=<?
                    $charact_proj_array = get_all_charact_proj($charact_proj_id);
                    display_charact_proj_select($charact_proj_array, @$charact_proj_id);
                  ?></option></select></p>
<p>или ввести:<input type = "text" id = "charact_proj_dop" name = "charact_proj_dop" size = "50" maxlength = "255" value = ""></p>
</div>
<p><input type="button" class = 'button' onClick="AddItem2()" value="добавить еще одну характеристику"></p>
<p>&nbsp;</p>
<p><input type="submit" value="Добавить в базу" />  </p>
</form>

</body>
</html>


она выдает в обработчик  такой, примерно, массив:

Код

array(13) {
  ["name"]=>
  string(18) "название 1"
  ["charact_name"]=>
  string(47) "Характеристика названия 1"
  ["charact_name_dop"]=>
  string(29) "характиристика4"
  ["charact_name1"]=>
  string(47) "Характеристика названия 3"
  ["charact_name_dop1"]=>
  string(29) "характеристика5"
  ["charact_name2"]=>
  string(47) "Характеристика названия 3"
  ["charact_name_dop2"]=>
  string(29) "характеристика5"
  ["type_proj"]=>
  string(23) "Тип проекта 1"
  ["type_proj_dop"]=>
  string(21) "типпроекта2"
  ["charact_proj"]=>
  string(45) "Характеристика проекта 2"
  ["charact_proj_dop"]=>
  string(29) "характеристика4"
  ["charact_proj1"]=>
  string(45) "Характеристика проекта 2"
  ["charact_proj_dop1"]=>
  string(29) "характеристика3"
}

есть база с таблицами для характеристик (id, charact_name) и сводной таблицей (id, name, charact_name etc...)

вот думаю: как бы из этого массива выдернуть и положить характеристики, каждую в свою таблицу характеристик проекта и характеристик названия (как их потом связать: думаю, через промежуточные таблицы вида: id, name_id, charact1_id, charact2_id - хотя, может я и не прав)

люди, подскажите, плз smile
PM MAIL   Вверх
Fortop
Дата 31.3.2008, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 3
Всего: 42



Почему сразу не формировать

charact_name_dop[x]?
И писать сюда
Цитата(cyberduck @  28.3.2008,  23:29 Найти цитируемый пост)
для характеристик (id, charact_name)

Добавив к этой таблице всего одно поле в котором ты будешь хранить id-сводной таблицы для связи.



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0393 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.