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


Присвоить значение связанному полю

связанное поле присвоить знаение

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

#1 All_ex74

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

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

Отправлено 28 Май 2014 - 15:01

Здравствуйте. Вопрос по полям.

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

В таб. Исполнители есть поле Карточка, связанное с таб. Статус оплаты (записи Свободна, Связана, Неактивна, Неоплачена). Необходимо по действию присвоить полю Карточка значение Свободна


if ($line['Статус']=="Исполняемая") $line['Исполнитель']['Карточка']['ID'] = "Связана"; // так не работает...


Сообщение отредактировал All_ex74: 28 Май 2014 - 15:02


#2 CbCoder

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

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

Отправлено 28 Май 2014 - 15:24

Во-первых, конструкцию $line['Исполнитель']['Карточка']['ID'] использовать в данном случае нельзя, т.к. вы редактируете не поле ID в связанной записи, а непосредственно само поле связи. Поэтому и писать надо именно присвоение полю связи: $line['Исполнитель']['Карточка'] = .... Иначе будут непредсказуемые последствия.

Во-вторых, в поле связи хранится ссылка на этот самый ID связанной записи, поэтому и присваивать надо ID соответствующей записи из справочника, а не значение текстового поля из него.

#3 All_ex74

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

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

Отправлено 28 Май 2014 - 16:29

Просмотр сообщенияCbCoder (28 Май 2014 - 15:24) писал:

Во-первых, конструкцию $line['Исполнитель']['Карточка']['ID'] использовать в данном случае нельзя, т.к. вы редактируете не поле ID в связанной записи, а непосредственно само поле связи. Поэтому и писать надо именно присвоение полю связи: $line['Исполнитель']['Карточка'] = .... Иначе будут непредсказуемые последствия.

Во-вторых, в поле связи хранится ссылка на этот самый ID связанной записи, поэтому и присваивать надо ID соответствующей записи из справочника, а не значение текстового поля из него.

Спасибо!..
А можно пример? Не доходит что то...)

Сообщение отредактировал All_ex74: 28 Май 2014 - 16:46


#4 CbCoder

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

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

Отправлено 28 Май 2014 - 18:09

Цитата

таб. Статус оплаты (записи Свободна, Связана, Неактивна, Неоплачена)

Заходите в нужную запись, и смотрите там значение поля ID. Если поле скрыто (а обычно оно скрыто, т.к. служебное), включаете предварительно доступ на просмотр. Либо еще проще - смотрите в адресной строке значение параметра line - оно равно значению этого поля.

#5 All_ex74

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

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

Отправлено 28 Май 2014 - 18:26

Просмотр сообщенияCbCoder (28 Май 2014 - 18:09) писал:

Заходите в нужную запись, и смотрите там значение поля ID. Если поле скрыто (а обычно оно скрыто, т.к. служебное), включаете предварительно доступ на просмотр. Либо еще проще - смотрите в адресной строке значение параметра line - оно равно значению этого поля.


if ($line['Статус']=="Исполняемая") $line['Исполнитель']['Карточка'] = 1;


Посмотрел в базе данных, по таблице - ID=1. Оказалось так просто)... Спасибо ещё раз.

Сообщение отредактировал All_ex74: 28 Май 2014 - 18:31






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

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