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


Вычисление для изменения данных в подтаблице


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

#1 ber

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

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

Отправлено 24 Ноябрь 2015 - 11:43

Здравствуйте, подскажите пример кода, который поможет реализовать простую идею:
При изменении данных в поле основной таблицы они копируются в определенное поле во все связанные записи определенной подтаблицы.

(надо, что бы создать правило, которое сейчас увы нельзя запрограммировать через поле связи)

Сообщение отредактировал ber: 24 Ноябрь 2015 - 11:51

www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#2 CbCoder

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

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

Отправлено 24 Ноябрь 2015 - 11:49

Запрос update с условием "поле связи с основной таблицей равно id основной записи":

$data['Поле подтаблицы'] = $line['Поле основной'];
update_query($data, "Подтаблица", "`Поле связи с основной`=".$line['ID']);


#3 ber

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

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

Отправлено 24 Ноябрь 2015 - 13:43

Просмотр сообщенияCbCoder (24 Ноябрь 2015 - 11:49) писал:

Запрос update с условием "поле связи с основной таблицей равно id основной записи":

$data['Поле подтаблицы'] = $line['Поле основной'];
update_query($data, "Подтаблица", "`Поле связи с основной`=".$line['ID']);

Не получается, код такой:

$data['f11670'] = $line['f1143'];
update_query($data, "Сотрудники DAF", "`f1135`=".$line['ID']);

Выдает ошибку:
Ошибка SQL запроса:
UPDATE cb_data89 SE WHERE `f1135`=1009

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `f1135`=1009' at line 1

www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#4 CbCoder

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

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

Отправлено 24 Ноябрь 2015 - 14:37

В моем примере нигде нет 'f111' - значит и у вас не должно быть. Функция update_query работает непосредственно с именами полей, а не их кодами, не путайте с data_update.

Либо используйте data_update (если уж хочется использовать id полей и таблицы), но в соответствии с ее синтаксисом. Я использовал update_query просто для примера, т.к. она проще для них.

#5 ber

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

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

Отправлено 24 Ноябрь 2015 - 14:47

Просмотр сообщенияCbCoder (24 Ноябрь 2015 - 14:37) писал:

В моем примере нигде нет 'f111' - значит у вас не должно быть. Функция update_query работает непосредственно с именами полей, а не их кодами, не путайте с data_update.

Либо используйте data_update (если уж хочется использовать id полей и таблицы), но в соответствии с ее синтаксисом. Я использовал update_query просто для примера, т.к. она проще для них.

Понятно, ларчик легко открывался, верный код:

$data['Менеджер кл.'] = $line['Менеджер'];
update_query($data, "Сотрудники DAF", '`Контрагент`='.$line['ID']);

www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто





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

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