|
|
|
| есть такая форма:
<form action="?page=project&act=insert" method="post" enctype='multipart/form-data'>
Название проекта: <input title="Не более 254 символов" maxlength=254 size=55 type=text name="project"><br>
Вид выполненных работ: <select style=width:355 name="type">
<option value="1">дизайн интерьера
<option value="1">отделочные работы</select><br>
Дизайнеры проекта: <input type=checkbox name="designer[]" value="1">Оксана Петрова<br>
<input type=checkbox name="designer[]" value="2">Вася Пупкин<br>
<input type=checkbox name="designer[]" value="3">Иван Иванов<br>
<input type=checkbox name="designer[]" value="4">Пётр Петров<br>
<input type=submit value=' Добавить ' title="Добавить" style="cursor:hand">
</form>
|
Если в форме выбран один дизайнер, то как добавить - знаю , а если выбрать несколько дизайнеров сразу, то как добавить эти данные из формы в базу?
(как-то через foreach, но никак не получается оформить правильно запись) помогите, пожалуйста | |
|
|
|
|
|
|
|
для: sirop
(20.07.2007 в 05:14)
| | показывайте структуры таблиц проектов , дизайнеров ... и контрактов (отношение дизайнеров к проектам) | |
|
|
|
|
|
|
|
для: Trianon
(20.07.2007 в 09:58)
| | Вот дамп таблицы всего проекта ( в неё ложатся поля "Название проекта" и "Вид выполненных работ"):
CREATE TABLE `gallery_project` (
`id` int(11) NOT NULL auto_increment,
`project` tinytext NOT NULL,
`type` int(11) NOT NULL default '0'
PRIMARY KEY (`id`)
) ENGINE=MyISAMж
|
Вот дамп таблицы дизайнеров ( в неё ложатся поля "Дизайнеры проекта" и "ID самого проекта из верхнего дампа для связки"):
CREATE TABLE `gallery_designer_project` (
`id` int(11) NOT NULL auto_increment,
`designer` int(11) NOT NULL default '0',
`project` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
|
Данные из отправленной формы добавляю так:
<?php
$_POST['project'] = mysql_escape_string($_POST['project']);
$query = "INSERT INTO gallery_project SET project = '".$_POST['project']."', type = '".$_POST['type']."'";
$new = mysql_query($query);
//ИД только что добавленного проекта
$id_add = mysql_insert_id();
if($new)
{
//Здесь нужно добавить записи в таблицу дизайнеров
}
?>
|
| |
|
|
|
|
|
|
|
для: sirop
(20.07.2007 в 14:49)
| | что Вы называете таблицей дизайнеров - я как раз назвал таблицей контрактов.
В ней и укладывается информация - кто в какой проект вовлечен. Впрочем дело не в названии.
Где таблица, которая хранит сами имена людей?
ведь gallery_designer_project.designer это чужой ключ в другую таблицу ?
Где она?
Впрочем код добавления можно и без нее наварить.
сейчас набросаем. ... | |
|
|
|
|
|
|
|
для: Trianon
(20.07.2007 в 15:14)
| | >Где таблица, которая хранит сами имена людей?
>ведь gallery_designer_project.designer это чужой ключ в другую таблицу ?
>Где она?
CREATE TABLE `gallery_designer` (
`id` int(11) NOT NULL auto_increment,
`designer` tinytext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
|
Поле designer и есть Имя и Фамилия дизайнера. А в таблице gallery_designer_project в поле designer хранится ID для связи
>Впрочем код добавления можно и без нее наварить.
>сейчас набросаем. ...
Уважаемый, Trianon, надеюсь на Вашу помощь. Спасибо | |
|
|
|
|
|
|
|
для: sirop
(20.07.2007 в 15:34)
| |
<?php
$project = mysql_escape_string($_POST['project']);
$type = intval($_POST['type']);
$sql = "INSERT INTO gallery_project
SET project = '$project',
type = $type";
$new = mysql_query($sql) // добавляем проект
if(!$new)
echo("Error in $sql : ". mysql_error());
else
{
echo "Проект добавлен. ";
$project_id = mysql_insert_id(); // ИД только что добавленного проекта
$designer = @$_POST['designer'];
if(!empty($designer))
{
foreach($designer as $num => $id)
$designer[$num] = intval($id); // оставляем только целые
$designer_list = implode(',', $designer); // список в строку через запятую
}
$sql = "INSERT INTO gallery_designer_project (project,designer)
SELECT $project_id AS project, id
FROM gallery_designer
WHERE id IN ($designer_list)";
$res = mysql_query($sql)) // добавляем разработчиков
if(!$res)
echo("Error in $sql : ". mysql_error());
else
echo "Разработчики добавлены.";
}
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(20.07.2007 в 15:37)
| | Гениально. Trianon, огромное спасибо, всё классно работает.
P.S.: $res = mysql_query($sql)) - убрал вторую закрывающую скобку и вместо неё точку с запятой - просто у Вас опечатка
Спасибо! | |
|
|
|