|
|
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
Зарегистрирован: 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
|