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


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


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

#1 Илья

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

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

Отправлено 17 Декабрь 2009 - 10:42

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

Но вот проблема, при указании в таблице 3 поля, идущего ссылкой на поле "Название" таблицы 2 в таблице 3 получаем номер, а не текстовое значение.

Но хотелось бы именно текстовое значение...
Как можно обойти это?

#2 CbCoder

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

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

Отправлено 17 Декабрь 2009 - 10:54

Никак. Поле связи не может ссылаться на другое поле связи, по крайней мере на данный момент. Выберите другое поле в таблице.

#3 Илья

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

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

Отправлено 17 Декабрь 2009 - 11:13

А возможно это реализовать через вычисления, указав в качестве идентификатора номер?
Идентификатор поля подсмотреть, добустим, напрямую в БД?

#4 CbCoder

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

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

Отправлено 17 Декабрь 2009 - 11:22

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

#5 Илья

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

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

Отправлено 17 Декабрь 2009 - 11:24

Вопрос вот в чем - откуда берется этот номер?
Нельзя ли сделать вычилсяемое поле, которое бы брало этот номер, находило по нему название и выдавало его в качестве результата?

#6 CbCoder

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

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

Отправлено 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["Нужное нам поле"]; // возвращаем нужное нам поле из связанной таблицы, например "Название"





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

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