1. Есть таблица со списком всех организаций нашего профиля
2. Есть таблица наших клиентов, берущая данные из общей таблицы, полем "Название" (поле типа "связь")
3. Есть таблица, в которой требуется держать договоры с клиентами.
Но вот проблема, при указании в таблице 3 поля, идущего ссылкой на поле "Название" таблицы 2 в таблице 3 получаем номер, а не текстовое значение.
Но хотелось бы именно текстовое значение...
Как можно обойти это?


Связь на поле типа "связь"
Автор Илья, 17 дек. 2009 10:42
Сообщений в теме: 5
#1
Отправлено 17 Декабрь 2009 - 10:42
#2
Отправлено 17 Декабрь 2009 - 10:54
Никак. Поле связи не может ссылаться на другое поле связи, по крайней мере на данный момент. Выберите другое поле в таблице.
#3
Отправлено 17 Декабрь 2009 - 11:13
А возможно это реализовать через вычисления, указав в качестве идентификатора номер?
Идентификатор поля подсмотреть, добустим, напрямую в БД?
Идентификатор поля подсмотреть, добустим, напрямую в БД?
#4
Отправлено 17 Декабрь 2009 - 11:22
Не совсем понял что вы имели ввиду. Я бы сделал так: создал во второй таблице скрытое вычисляемое тектстовое поле, куда заносится Название из первой таблицы при выборе организации в поле связи, а затем выбрал бы это поле в качестве поля связи в третьей таблице.
#5
Отправлено 17 Декабрь 2009 - 11:24
Вопрос вот в чем - откуда берется этот номер?
Нельзя ли сделать вычилсяемое поле, которое бы брало этот номер, находило по нему название и выдавало его в качестве результата?
Нельзя ли сделать вычилсяемое поле, которое бы брало этот номер, находило по нему название и выдавало его в качестве результата?
#6
Отправлено 17 Декабрь 2009 - 14:58
В поле связи хранится ID строки связанной таблицы. Соответственно поля связанной таблицы извлекаются так:
$cur_table = data_table("Текущая таблица", "id={ID}"); // строка текущей таблицы
$rel_field = $cur_table["Поле связи"]; // достаем значение поля связи, в нем хранится ID строки связанной таблицы (тот самый "номер)
$rel_table = data_table("Связанная таблица", "id=$rel_field"); // строка связанной таблицы с полученным выше ID
return $rel_table["Нужное нам поле"]; // возвращаем нужное нам поле из связанной таблицы, например "Название"
$cur_table = data_table("Текущая таблица", "id={ID}"); // строка текущей таблицы
$rel_field = $cur_table["Поле связи"]; // достаем значение поля связи, в нем хранится ID строки связанной таблицы (тот самый "номер)
$rel_table = data_table("Связанная таблица", "id=$rel_field"); // строка связанной таблицы с полученным выше ID
return $rel_table["Нужное нам поле"]; // возвращаем нужное нам поле из связанной таблицы, например "Название"
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных