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


Как вывести количество записей в подчиненной таблице?


В теме одно сообщение

#1 Givik

    Участник

  • Пользователи
  • PipPip
  • 17 сообщений
  • Пол:Мужчина

Отправлено 11 Март 2011 - 11:16

Задача: у контрагента может быть несколько магазинов с разными адресами, необходимо при просмотре контрагентов видеть кол-во его магазинов.
Что сделано:
1) подчиненная таблице "Контрагенты" таблица "Магазины"
2) в таблице "Магазины" реквизит "Контрагент" = связь с таблицей "Контрагент", поле "Название"
3) в таблицу "Контрагенты" добавлено расчетное поле "Кол-во магазинов":
$company = data_table("Контрагенты","id={ID}");
$shops = data_table("Магазины", "Контрагент='".$company["Название"]."'");
$result = count($shops);
return $result;

В результате почему-то всегда выводится "1", вне зависимости от количества магазинов. Что в скрипте не так?

#2 CbCoder

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

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

Отправлено 11 Март 2011 - 11:57

Функция data_table возвращает всегда только одну запись, а именно первую из тех что соответствуют условию. Для того чтобы подсчитать кол-во подчиненных записей, используйте прямой SQL запрос. Примеры формирования запросов есть в документации.





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

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