Страница 1 из 1

Выполнение PHP

Добавлено: 19 мар 2022, 10:58
vgrachev
Столкнулся с такой проблемой, два поля (php) подряд,
396 Вес Числовое поле
397 План Числовое поле
398 Факт Числовое поле
399 Прогресс PHP код
400 КПД PHP код

Прогресс рассчитывается из статичных полей План и Факт:

Код: Выделить всё

//fact*100/plan
if([397] > 0 and [398] >= 0) {
  $output_value = [398]*100/[397];
} else {
  $output_value = 0;//$current_field_value
}
КПД рассчитывается из Прогресс:

Код: Выделить всё

//progress*(value/100)
if([399] > 0 and [396] >= 0) {
  $output_value = [399]*([396]/100);
} else {
  $output_value = 0;//$current_field_value
}
это поля вложенной сущности, которые отображаются в записи родителя, ничего сверхъестественного, исключал нулевые значения, пробовал разные варианты! Логика такая, при изменении строки должен отработать php в полях, проставиться в базе значения, проставляет, но при первом изменении изменяет только Прогресс, КПД нет, а если еще раз изменить эту же строку тогда изменяет и КПД, т.е. последовательно, пользователь же не будет 2 раза изменять строку, в связи с этим два вопроса:
1. не могу сообразить это баг или как обойти последовательное выполнение PHP?
2. PHP выполняется при изменении/добавлении с записью в базу, а если динамически то без записи в базу и то при обращении/открытии записи, возможно ли сделать штатными средствами что бы отрабатывал динамически при этом с записью в базу? Т.к. не удобно, при изменении приходится еще раз обновить страницу записи например, что бы отработал PHP...

Re: Выполнение PHP

Добавлено: 19 мар 2022, 16:58
vgrachev
Проблему обошел, перебрал массу вариантов, в итоге:
Прогресс MySQL запрос + КПД PHP код + исправил сам запрос и пхп
только в таком сочетании заработало как надо...
П.С. ни запрос/запрос или пхп/пхп не отрабатывают одновременно за 1 изменение записи, пробовал ПХП прогресс/кпд Запрос - делает в 2 изменения всеравно, мне нужно было выводить сумму по полю)