Доброго времени суток всем!
Собственно, сабж. При работе с подтаблицами бывает необходимым что-бы вычисление запускалось в главной таблице при изменениях в подчинённой. Т.е. в главной вычисление вызываем по изменению поля 'поле суммы', а в подтаблице делаем $line['поле связи']['поле суммы'] = $line['поле связи']['поле суммы'] + 1 для запуска вычисления.
При модификации в подтаблице всё работает замечательно. Но при вызове по событию удаления в подтаблице, у нас СНАЧАЛА проходит модификация $line['поле связи']['поле суммы'] = $line['поле связи']['поле суммы'] + 1, а собственно удаление записи в подтаблице случается ПОТОМ.
Пока вышел из положения прямым запросом вида
$sql="UPDATE `таблица` SET `status`=2 WHERE `id` = ".$line['ID'];
$result = sql_query($sql);
в вычислении подтаблицы.
Но может можно как-то более цивилизованно?
1
Как выполнить вычисление ПОСЛЕ удаления записи?
Автор Cutter, 11 сент. 2017 09:31
Сообщений в теме: 3
#1
Отправлено 11 Сентябрь 2017 - 09:31
#2
Отправлено 11 Сентябрь 2017 - 10:25
Боюсь, при вашей схеме вычислений более "прямых" вариантов не существует. Разве что попробовать заменить событие удаления на событие изменения поля "Статус записи" - оно сработает после изменения. Но гарантированно не уверен что это сработает.
#3
Отправлено 11 Сентябрь 2017 - 12:22
если время запуска после удаления некритично, можно в cron положить соответствующее вычисление и запускать ночью или раз в час
#4
Отправлено 11 Сентябрь 2017 - 14:48
CbCoder, за мысль спасибо! Надо её подумать.
AntonKravchenko, не вариант, нужно по событию в подтаблице.
AntonKravchenko, не вариант, нужно по событию в подтаблице.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных