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


Вычисление + связи


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

#1 Snooperd

    Участник

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

Отправлено 16 Ноябрь 2015 - 13:50

Добрый день.

Есть категория "Карточка клиента/Клиент охраны"

в ней поля : Пультовой, Диапазон и Телефон пульта

поле Диапазон отображает диапазон номеров (пример: 123695 то диапазон 120000) через вычисление

//Вычисление диапазона и обрезка
$num = $line['Пультовой'];
$r = 4; //количество обрезаемых разрядов
$num = floor($num / pow(10, $r));
$line['Диапазон'] = ($num * 10000); //выводим в поле приписав 0000

Далее мне надо при совпадении полей Диапазон и № Диапазона через это вычисление вывести в поле "Телефон пульта" номер телефона из соответствующего поля "Телефон №" подтаблицы "№ телефонов" из категории Организация/ПЦО

в подтаблице "№ телефонов" категории Организация/ПЦО есть поля № Диапазона, Система, Телефон №.

Прикрепленные изображения

  • Прикрепленное изображение: Без имени-1.png

Сообщение отредактировал Snooperd: 16 Ноябрь 2015 - 14:06


#2 CbCoder

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

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

Отправлено 16 Ноябрь 2015 - 15:15

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

#3 Snooperd

    Участник

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

Отправлено 16 Ноябрь 2015 - 18:58

получилось так:

// Получаем содержимое поля "ТЕЛЕФОН №" таблицы "№ телефонов", где поле "№ Диапазона" равно "Диапазон".
$sqlQuery = "SELECT sum(f2560) as summa FROM ".DATA_TABLE."190 WHERE status=0 AND f2570='".$line['Диапазон']."'";
$res = sql_query($sqlQuery);
$row = sql_fetch_array($res);
$summa = $row['summa'];
// Заносим полученную сумму в поле "Сумма" родительской таблицы, обращаясь через поле связи "Счет"
$line['Телефон пульта'] = $summa ;

Но проблема, вычисление не выводит данные дальше символов, пример 8 (495) 123-45-67 выводит 8 и так далее

Сообщение отредактировал Snooperd: 16 Ноябрь 2015 - 22:24


#4 CbCoder

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

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

Отправлено 17 Ноябрь 2015 - 09:06

А зачем вы сумму телефонов то считаете? Вам нужна не сумма, а просто значение поля, из подходящей условию записи.

#5 Snooperd

    Участник

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

Отправлено 17 Ноябрь 2015 - 10:31

вот я и спрашиваю как это реализовать, но так работает как мне надо.
А как не сумма? как вывести? как правильно? )

#6 CbCoder

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

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

Отправлено 17 Ноябрь 2015 - 11:41

Так уберите функцию суммы? Я же все пояснил уже.

SELECT sum(f2560) as summa -> SELECT f2560
$summa = $row['summa'] -> $tel = $row['f2560'];

и т.д.

#7 Snooperd

    Участник

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

Отправлено 17 Ноябрь 2015 - 11:57

то есть убрать sum() ок спасибо.

а как быть с вычисление не выводит данные дальше символов ( - и пробел, пример 8 (495) 123-45-67 выводит 8 и так далее

#8 CbCoder

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

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

Отправлено 17 Ноябрь 2015 - 14:53

А вы сумму то убрали уже? Функция суммы преобразует аргументы в число, поэтому неудивительно что от строки осталась восьмерка.

#9 Snooperd

    Участник

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

Отправлено 17 Ноябрь 2015 - 15:02

так до этого тоже не выдавала после знаков (

#10 CbCoder

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

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

Отправлено 17 Ноябрь 2015 - 15:07

Тип поля "Телефон пульта" какой? Если число, то также будет потеря. У вас в любом случае где-то идет преобразование строки в число.

#11 Snooperd

    Участник

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

Отправлено 17 Ноябрь 2015 - 15:50

Да верно, в диапазоне было числовое, должны быть все текстовые )

Спасибо огромное





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

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