0
При изменении поля, поле связи заполнять определенным значением
Автор user103, 29 марта 2016 14:33
Сообщений в теме: 11
#1
Отправлено 29 Март 2016 - 14:33
При изменении поля, если оно не равно 0, поле связи оперФрезеровки заполнить значением строки с id 55 из связанной таблицы
какой правильный синтаксис?
if ($line['Фрезеровка']!='0') $line['оперФрезеровки'] = $line['оперФрезеровки']['55'];
какой правильный синтаксис?
if ($line['Фрезеровка']!='0') $line['оперФрезеровки'] = $line['оперФрезеровки']['55'];
#2
Отправлено 29 Март 2016 - 15:21
А с чего вы взяли что таким синтаксисом вы сможете обратится к строке с id 55? Вы где-то видели похожий на это пример? Интересно просто.
#3
Отправлено 30 Март 2016 - 11:31
Так, наобум, пробовал разные варианты, ничего не получается.
Перерыл форум и документацию, не получается найти подсказки)
Вот приходится отвлекать вас от дел насущных.
Перерыл форум и документацию, не получается найти подсказки)
Вот приходится отвлекать вас от дел насущных.
#4
Отправлено 30 Март 2016 - 11:42
Я это к тому, что придумывать самому то чего нет, не надо, если не знаете лучше просто спросить как делается.
В вашем случае все проще на совсем деле: if ($line['Фрезеровка']!='0') $line['оперФрезеровки'] = 55, т.к. в полях связи как раз id связанной записи и хранится, а не строка целиком или какое-то иное значение. Если же вам потребовалось бы какое-то иное поле достать из строки с id=55 или даже строку целиком, то в этом случае нужен запрос к таблице, но точно не какое-то "хитрое" обращение через $line.
В вашем случае все проще на совсем деле: if ($line['Фрезеровка']!='0') $line['оперФрезеровки'] = 55, т.к. в полях связи как раз id связанной записи и хранится, а не строка целиком или какое-то иное значение. Если же вам потребовалось бы какое-то иное поле достать из строки с id=55 или даже строку целиком, то в этом случае нужен запрос к таблице, но точно не какое-то "хитрое" обращение через $line.
#5
Отправлено 30 Март 2016 - 11:58
понял, со всем согласен
условие вычисления - изменение поля фрезеровка окон или сохранение в таблице
но ничего не происходит
if ($line['Фрезеровка окон']!='0') $line['опФрезеровка окон']=55;
условие вычисления - изменение поля фрезеровка окон или сохранение в таблице
но ничего не происходит
#6
Отправлено 30 Март 2016 - 12:58
А у поля Фрезеровка окон - какой тип поля?
#7
Отправлено 30 Март 2016 - 14:37
Числовое
#8
Отправлено 30 Март 2016 - 14:41
Тогда все должно работать по логике, если конечно вы не ошиблись где-то с именами полей к примеру.
#9
Отправлено 01 Апрель 2016 - 11:52
Если сменить на заполнение числового поля
то код работает корректно, кол отверстий проставляет 55, а вот поле связи также не заполняет
if ($line['Фрезеровкаокон']!=0) $line['колОтверст']=55;
то код работает корректно, кол отверстий проставляет 55, а вот поле связи также не заполняет
#10
Отправлено 01 Апрель 2016 - 11:55
Все, нашел ошибку. Работает.
#11
Отправлено 01 Апрель 2016 - 13:05
А если после изменения, числовое поле вернуть обратно к нулю,
как обнулить поле связи? вот так правильно?
как обнулить поле связи? вот так правильно?
if ($line['Фрезеровкаокон']!=0) {$line['опФрезеровка']=55;} else {$line['опФрезеровка']='';}
#12
Отправлено 04 Апрель 2016 - 16:23
Цитата
вот так правильно?
Так проверьте, в чем проблема. Код рабочий скорее всего, придраться можно разве что к формальной "красоте" - вместо пустой строки логичнее использовать 0, да и фигурные скобки не в тему тут. Но на работу это не должно влиять (пустая строка приведется к нулю автоматом).
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных