Регистрация
Вход через соцсети
Восстановление пароля

Скрещивание таблиц

Новый топик
26.07.2006, 13:04
Ответить | Цитировать
urix

Зарегистрирован:
2006-04-06
Сообщений: 30

Задача такова: нужно при добавлении/редактировании какого-либо объекта производить привязку к нему записи из другой таблицы.
Примерно так - мы добавляем фотографию, и в админке можно выбирать из списка, формируемого из html-текстов другого раздела.
Фотографий много - а подписей к ним определЈнное количество, причем через "списки" это делать нереально - в подписи текста гораздо больше, чем может поместиться в обычное поле типа string улыбка
Фотографии хранятся в одной таблице - подписи в другой, естественно.
Как бы в админке скрестить их?

urix
26.07.2006, 13:11
Ответить | Цитировать
urix

Зарегистрирован:
2006-04-06
Сообщений: 30

Скажем так - я придумал вариант такой
Создать список в "списках", из которого можно дЈргать название подписи.
Потом через s_list_query прекрасно производится соответствующая выборка из нужной таблицы с подписями.
Но! Как при добавлении подписи в таблицу добавить упоминание про неЈ в таблицу со списками...
Писать что ли свою функцию... ибо неткат древовидный, а мне матрица нужна грустный

urix
26.07.2006, 14:56
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Дано:
1. Шаблон А
2. Шаблон Б

Задача:
1. При добавлении/изменении записи Шаблона А нужно указывать ссылку на одну запись из Шаблона Б

Решение:
1. В шаблон А добавляете поле, например: LinkID - ID шаблона Б - целое число
2. У шаблона А добавляете альтернативную форму добавления/изменения, где указываете :
Код:

Ссылка на шаблон Б:<br><select name=f_LinkID>".listQuery("select * from MessageXX where Checked=1 order by Name","<option value=$data[Message_ID]>$data[Name]")."</select><br><br>


Temet nosce...
26.07.2006, 15:01
Ответить | Цитировать
urix

Зарегистрирован:
2006-04-06
Сообщений: 30

... и получим при добавлении/редактировании объектов в шаблоне А только один-единственный select улыбка

urix
26.07.2006, 16:38
Ответить | Цитировать
urix

Зарегистрирован:
2006-04-06
Сообщений: 30

Скажем так - частично я проблему решил.
В форме добавления объекта шаблона Б я сделал действие в поле "Действие после добавления объекта"

Код:

";
mysql_query("insert into Classificator_demo values ('','$f_Name','0')");
mysql_query ("update Classificator_demo set demo_ID=(select max(Message_ID from Message39) where demo_Name='$f_name'");
echo"


В форме изменения объекта добавил действие после удаления объекта

Код:
";
mysql_query("delete from Classificator_demo where demo_ID='$message'");
echo"


После редактирования объекта
Код:
";
mysql_query("update Classificator_demo set demo_Name='$f_Name' where demo_ID='$message'");
echo"

Минус такого подхода - после добавления/удаления/редактирования объекта в админке мы получаем пустую страницу, без сообщения "Объект добавлен" и ссылки на возвращение в список

urix
26.07.2006, 17:26
Ответить | Цитировать
urix

Зарегистрирован:
2006-04-06
Сообщений: 30

Народ, чуток осталось - и у нас будет готовый способ для решения таких задач!

urix
26.07.2006, 17:48
Ответить | Цитировать
urix

Зарегистрирован:
2006-04-06
Сообщений: 30

Итак - вот как должны выглядеть окончательно действия
---Добавление объекта---
Код:
";
mysql_query("insert into Classificator_demo values ('','$f_Name','0')");
mysql_query ("update Classificator_demo set demo_ID=(select max(Message_ID from Message39) where demo_Name='$f_name'");
echo"Объект добавлен.<br><br>
<a href=/netcat/?catalogue=$catalogue&sub=$sub&cc=$cc>Вернуться в раздел</a>

---Изменение объекта---
Код:
";
mysql_query("update Classificator_demo set demo_Name='$f_Name' where demo_ID='$message'");
echo"Объект отредактирован.<br><br>
<a href=/netcat/?catalogue=$catalogue&sub=$sub&cc=$cc>Вернуться в раздел</a>

---Удаление объекта---
Код:
";
mysql_query("delete from Classificator_demo where demo_ID='$message'");
echo"Объект удалЈн.<br><br>
<a href=/netcat/?catalogue=$catalogue&sub=$sub&cc=$cc>Вернуться в раздел</a>


В общем - интересный монолог получился улыбка

urix
198 196 2006-07-26 17:48:39 8663
Описание проекта