Перейти к содержимому


Узнать id родительской таблицы.


Сообщений в теме: 2

#1 Konstantinov

    Новичок

  • Пользователи
  • Pip
  • 9 сообщений
  • Пол:Мужчина

Отправлено 25 Январь 2018 - 15:59

Есть таблицы, у которых общая подтаблица.
Как в вычислении подтаблицы узнать, из какой родительской таблицы были внесены изменения, за которыми последовало вычисление?

Как пример, есть таблица сделки, есть таблица объекты. У них общая подтаблица физ лиц. У таблицы физ лица есть связь и со сделкой и с объектом.
Открыв таблицу сделки и внеся изменения в подтаблицу физ.лица, запускается вычисление, в вычислении нужно знать что оно запущено именно с таблицы сделки, а не с таблицы объекты.

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Январь 2018 - 09:45

Боюсь, никак это не отследить в вычислении. Для вычисления вообще отсутствует такая сущность как подтаблица, ему без разницы в каком режиме данные редактировались.

#3 Tony999

    Активный участник

  • Пользователи
  • PipPipPip
  • 412 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 04 Февраль 2018 - 21:01

URL, например, все это покажет.

Делаем вычисление на отображение любого поля, которое отображается в режиме просмотра.
или просто в файле functions_custom.php - будет автоматом срабатывать после каждой перезагрузки страницы, что нам и надо.

$uri = $_SERVER['REQUEST_URI'];
if (preg_match("/line/is",$uri)) // Это режим просмотра записи
$_SESSION['tbl'] = $table['id']; // Записываем номер таблицы в глобальную переменную (видна везде).

Вот и все. Делаем свое вычисление в подтаблице,опрашиваем нашу глобальную переменную. В ней будет нужный номер "родительской таблицы".
Кстати, почему preg_match? Да просто удобно. Если понадобится, можно и такой фильтр сделать, например:
preg_match("/(filter=271|filter=281|filter=291|filter=301|filter=341|table=351)/is",$uri)
- запускать вычисления от множества условий в строке URL.
Полезная штука!

P.S. Кстати, первые две строки кода можно и опустить. При обновлении страницы, также как и при переходе в режим просмотра записи, глобальная переменная в любом случает получит id текущей основной таблицы.

Сообщение отредактировал Tony999: 10 Февраль 2018 - 13:39

Умные сайты на заказ
https://info.crm-master.info





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных