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


Обновление данных в другой таблице.


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

#1 silver

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 05 Март 2013 - 13:30

Имеется такая логика. 2 таблицы, одна "Полисы", другая "Продажа". При добавлении строки в таблицу "Продажа", обновляю дату продажи в таблице "Полисы". Таблицы связаны по двум полям. Продажа.Номер полиса -> Полисы(ID). Полисы.Дата продажи -> Продажа(ID). Пытаюсь в вычислении выполнить код:

$sql_upd = "UPDATE ".DATA_TABLE."101 SET f1331='".$ID."' WHERE ID='".$line['Номер полиса']."'";
$res = sql_query($sql_upd);

Логически вроде все выглядит нормально. Обновить таблицу "Полисы", в поле "Дата продажи" записать ID текущей строки, где ID таблицы "Полисы" равно значение из поля "Номер полиса" текущей продажи. Запрос выполняется без ошибки, но поле не обновляется.

#2 CbCoder

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

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

Отправлено 05 Март 2013 - 14:43

Т.к. поле "Номер полиса" является полем связи, в переменной $line['Номер полиса'] хранится массив всех полей из связанной записи, а не только ID. Соответственно, к полю "ID" нужно обращаться как $line['Номер полиса']['ID']:

$sql_upd = "UPDATE ".DATA_TABLE."101 SET f1331='".$ID."' WHERE ID='".$line['Номер полиса']['ID']."'";
$res = sql_query($sql_upd);

Это уже будет рабочий запрос. Но, на самом деле ваша задача делается еще проще:

$line['Номер полиса']['Дата продажи'] = $ID;

Суть понятна?

#3 silver

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 05 Март 2013 - 15:05

Спасибо. Теперь разобрался. Не подумал о массиве. Пока разбирался, нашел как вызвать ошибку. В обишке видно, что передается массив.

Просмотр сообщенияCbCoder (05 Март 2013 - 14:43) писал:

$line['Номер полиса']['Дата продажи'] = $ID;

за это отдельное спасибо. В документации написано, но как то не понятно. На реальном примере понимается лучше.





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

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