в одной таблице используется тип поля "пользователь"
во второй тип поля "связь"
с той таблицы где "связь" через доп.действие добавляем запись в ту где "пользователь"
id получаются разные, и поле не правильно заполняется, можно как то отправлять текстовое значение?
$array['Сотрудник'] = $line['Менеджер'];
$array['Начислено'] = $line['Процент менеджера'];
$array['Основание'] = 4;
$array['Описание'] = $line['Компания']['На кого'].$razdelitel.$line['Категория']['Название категории'].$razdelitel.$line['Описание'];
insert_query($array, "Начисление");
1
Сообщений в теме: 8
#1
Отправлено 29 Февраль 2016 - 19:52
#2
Отправлено 01 Март 2016 - 09:08
Естественно они будут разные, т.к. "пользователь" и "связь" - это абсолютно разные сущности. Копировать можно только поля одного типа.
#3
Отправлено 01 Март 2016 - 10:06
Это понятно, вопрос был в том, можно ли как то копировать не id а текст? И если да то как это написать?
#4
Отправлено 01 Март 2016 - 10:12
Можно только в случае если оба поля имеют тип "текст". В поле с типом "пользователь" или "связь" текст разумеется копировать нельзя, только id.
#5
Отправлено 01 Март 2016 - 10:15
Хорошо, как то решить задачу возможно не меняя типа полей?
#6
Отправлено 01 Март 2016 - 10:23
Конечно можно. Найдите поле "пользователь" в источнике и копируйте его. Например, если в вашем в случае поле связи указывает на таблицу, где есть поле "пользователь", то именно его и нужно копировать:
$array['Сотрудник'] = $line['Менеджер']['Пользователь'];
Вы не пояснили поля в своем коде, но предположу что Сотрудник - это поле "пользователь", а Менеджер - "связь". Тогда Пользователь - это поле "пользователь" в связанной таблице. Возможно на самом деле все не так, но суть думаю понятна. В любом случае нужно совмещать поля одного типа, неважно "пользователь" или "связь".
$array['Сотрудник'] = $line['Менеджер']['Пользователь'];
Вы не пояснили поля в своем коде, но предположу что Сотрудник - это поле "пользователь", а Менеджер - "связь". Тогда Пользователь - это поле "пользователь" в связанной таблице. Возможно на самом деле все не так, но суть думаю понятна. В любом случае нужно совмещать поля одного типа, неважно "пользователь" или "связь".
#7
Отправлено 01 Март 2016 - 10:26
Ааа, точно.
Спасибо большое.
Спасибо большое.
#8
Отправлено 01 Март 2016 - 10:38
Но, что то не получилось.
Поле связь, это "сотрудник".
$array['Сотрудник']['Пользователь'] = $line['Менеджер'];
Не сработало, поле осталось пустым.
Поле связь, это "сотрудник".
$array['Сотрудник']['Пользователь'] = $line['Менеджер'];
Не сработало, поле осталось пустым.
#9
Отправлено 01 Март 2016 - 10:48
Ваша конструкция смысла не имеет. В моем примере подразумевалось что поле "Сотрудник" с типом пользователь, поэтому и заполнялось оно пользователем. Если поле "Сотрудник" - это "связь", то и заполнять его нужно id связи. Соответственно, для начала нужно вспомнить, что это связь и с какой таблицей. Если к примеру с таблицей "Наши сотрудники", то единственный вариант - это обратится запросом к данной таблице с условием "поле пользователь из таблицы сотрудники равно полю пользователь из текущей таблицы", и затем получить id найденной строки. Это и будет нужное значение для поля связи.
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных