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


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

связь пользователь

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

#1 oknik

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

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

Отправлено 29 Февраль 2016 - 19:52

в одной таблице используется тип поля "пользователь"
во второй тип поля "связь"

с той таблицы где "связь" через доп.действие добавляем запись в ту где "пользователь"
id получаются разные, и поле не правильно заполняется, можно как то отправлять текстовое значение?

$array['Сотрудник'] = $line['Менеджер'];
$array['Начислено'] = $line['Процент менеджера'];
$array['Основание'] = 4;
$array['Описание'] = $line['Компания']['На кого'].$razdelitel.$line['Категория']['Название категории'].$razdelitel.$line['Описание'];
insert_query($array, "Начисление");

#2 CbCoder

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

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

Отправлено 01 Март 2016 - 09:08

Естественно они будут разные, т.к. "пользователь" и "связь" - это абсолютно разные сущности. Копировать можно только поля одного типа.

#3 oknik

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

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

Отправлено 01 Март 2016 - 10:06

Это понятно, вопрос был в том, можно ли как то копировать не id а текст? И если да то как это написать?

#4 CbCoder

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

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

Отправлено 01 Март 2016 - 10:12

Можно только в случае если оба поля имеют тип "текст". В поле с типом "пользователь" или "связь" текст разумеется копировать нельзя, только id.

#5 oknik

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

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

Отправлено 01 Март 2016 - 10:15

Хорошо, как то решить задачу возможно не меняя типа полей?

#6 CbCoder

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

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

Отправлено 01 Март 2016 - 10:23

Конечно можно. Найдите поле "пользователь" в источнике и копируйте его. Например, если в вашем в случае поле связи указывает на таблицу, где есть поле "пользователь", то именно его и нужно копировать:

$array['Сотрудник'] = $line['Менеджер']['Пользователь'];

Вы не пояснили поля в своем коде, но предположу что Сотрудник - это поле "пользователь", а Менеджер - "связь". Тогда Пользователь - это поле "пользователь" в связанной таблице. Возможно на самом деле все не так, но суть думаю понятна. В любом случае нужно совмещать поля одного типа, неважно "пользователь" или "связь".

#7 oknik

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

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

Отправлено 01 Март 2016 - 10:26

Ааа, точно.
Спасибо большое.

#8 oknik

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

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

Отправлено 01 Март 2016 - 10:38

Но, что то не получилось.
Поле связь, это "сотрудник".

$array['Сотрудник']['Пользователь'] = $line['Менеджер'];

Не сработало, поле осталось пустым.

#9 CbCoder

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

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

Отправлено 01 Март 2016 - 10:48

Ваша конструкция смысла не имеет. В моем примере подразумевалось что поле "Сотрудник" с типом пользователь, поэтому и заполнялось оно пользователем. Если поле "Сотрудник" - это "связь", то и заполнять его нужно id связи. Соответственно, для начала нужно вспомнить, что это связь и с какой таблицей. Если к примеру с таблицей "Наши сотрудники", то единственный вариант - это обратится запросом к данной таблице с условием "поле пользователь из таблицы сотрудники равно полю пользователь из текущей таблицы", и затем получить id найденной строки. Это и будет нужное значение для поля связи.





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

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