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


Использование данных из служебной таблицы пользователей


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

#1 TelecomMedia

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

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

Отправлено 23 Июнь 2015 - 15:39

1. Можно ли в служебную таблицу пользователей добавить новое поле "Внутренний номер"?

Есть необходимость делать запрос вида:
[color=#000000][font=arial][size=3]$user_profile = sql_select_array(USERS_TABLE, "id=",$line['Менеджер ОП']); [/size][/font][/color]
[color=#000000][font=arial][size=3]$line['Вн. номер м-ра'] = $user_profile['inner_nomer'];[/size][/font][/color]



Сейчас успешно делается запрос к полю "Телефон":
[color=#000000][font=arial][size=3]$user_profile = sql_select_array(USERS_TABLE, "id=",$line['Менеджер ОП']); [/size][/font][/color]
[color=#000000][font=arial][size=3]$line['Телефон м-ра'] = $user_profile['phone'];[/size][/font][/color]


В тех поддержке посоветовали сделать следующее:
"Сделайте срытое поле связи к таблице "Наши сотрудники", которое через вычисление заполняйте сотрудников у которого "пользователь" такой же как поле "Менеджер ОП" и уже по этой связи делайте запрос на внутренний номер."

Сделал:
[color=#000000][font=arial][size=3]$user_profile = sql_select_array(USERS_TABLE, "id=",$line['Менеджер ОП']); // Выбираю менеджера, который стоит в поле "Менеджер ОП"[/size][/font][/color]
[color=#000000][font=arial][size=3]$line['М-р'] = $user_profile['fio']; // В поле "М-р" (типа связь с полем ФИО т. "Наши сотрудники) подставляю значение имени. Значение не подставляется[/size][/font][/color]



Значение не подставляется.

2. В поле типа пользователь "Менеджер ОП" нужно подставить имя текущего пользователя.

В доп. действии код:

$user_profile = sql_select_array(USERS_TABLE, "id=",$user['id']);
$line['Менеджер ОП'] =  $user_profile['fio'];

Значение не подставляется. Если поле текстовое, то все ок, значение ФИО копируется.

#2 CbCoder

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

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

Отправлено 23 Июнь 2015 - 15:51

Цитата

Можно ли в служебную таблицу пользователей добавить новое поле "Внутренний номер"?

Добавить то можно, только как вы его заполнять собираетесь?

Цитата

В тех поддержке посоветовали сделать следующее

Несколько странный совет, не нужно никакого скрытого поля, в таблице "Наши сотрудники" уже есть поле "пользователь", которое можно использовать для связи. Собственно, добавляете туда поле (если его еще там нет) "Внутренний номер", заполняете его у нужных сотрудников и обращаетесь уже не к USERS_TABLE по id, а к "Нашим сотрудникам" по полю "пользователь" и достаете оттуда номер. Так даже логичнее, ибо это данные сотрудника, а не пользователей. У пользователя должна быть только информация для авторизации и связанных с ней вещей.

#3 TelecomMedia

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

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

Отправлено 24 Июнь 2015 - 10:25

1. Ок с этим разобрался, правда несколько иначе.
2. Что скажете по второму вопросу?

#4 CbCoder

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

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

Отправлено 24 Июнь 2015 - 11:53

2. В поле "пользователь" хранится id пользователя, а не его ФИО. Я думал вы в курсе, исходя из пункта 1.

Т.е. код даже проще:
$line['Менеджер ОП'] = $user['id'];


#5 CbCoder

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

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

Отправлено 24 Июнь 2015 - 11:58

Кстати, даже если бы там хранилось ФИО, обращаться к USERS_TABLE для получения $user_profile все равно было бы избыточным шагом, т.к. все уже есть в самой $user. Перемудрили с логикой.

#6 TelecomMedia

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

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

Отправлено 26 Июнь 2015 - 15:11

Хорошо, спасибо.

#7 f-jeka

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

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

Отправлено 26 Август 2015 - 12:29

Каким вычислением можно связать Пользователя и Сотрудника?
Например, я выписываю счет, и в поле Выписал добавляется пользователь1, который завел счет. Как занести в строку Менеджер того сотрудника к которому привязан пользователь1 ?

#8 CbCoder

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

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

Отправлено 26 Август 2015 - 17:31

Обращаетесь запросом к таблице Сотрудники с условием "поле Пользователь в таблице Сотрудники равно полю Пользователь в текущей таблице", берете оттуда ID и записываете его в поле Менеджер.

#9 f-jeka

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

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

Отправлено 08 Сентябрь 2015 - 04:18

А можно пример такого вычисления. Что то слишком сложно получается.

#10 CbCoder

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

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

Отправлено 08 Сентябрь 2015 - 09:05

Что тут сложного то? Все расписал же уже:

$sotr = data_select_array(46, "f1400=",$line['Выписал']); // 46 - id таблицы "Наши сотрудники", f1400 - поле Пользователь в этой таблице
$line['Менеджер'] = $sotr['id'];


#11 f-jeka

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

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

Отправлено 11 Сентябрь 2015 - 03:12

Большое спасибо!
Я бы сам не догадался написать такое вычисление.

#12 f-jeka

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

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

Отправлено 09 Август 2020 - 13:03

Подскажите еще, пожалуйста, по подобному вычислению.
Вызываю вычисление из настроек шлюза в СМС рассылке.
Нужно чтоб приходило уведомление админу на почту, если сотрудник с определенным рабочим телефоном сделал отправку смс.
Пишу так вычисление:

$sotr = data_select_array(46, "f8440=",$line['telephone']); // 46 - id таблицы "Наши сотрудники", f8440 - поле Рабочий телефон в этой таблице
if( $sotr['telephone']==89991112233) {
sendmail("СМС, $text, $admin_email);
}

Почему то условие не срабатывает.

#13 f-jeka

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

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

Отправлено 10 Август 2020 - 16:19

Забыл сказать что телефон должен браться у текущего сотрудника который это СМС отправляет.
Или это как то другому реализовывается?

#14 f-jeka

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

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

Отправлено 11 Август 2020 - 16:28

Вот так еще пробовал тоже не срабатывает
$sotr = data_select_array(46, "f1400=",$user['id']); // 46 - id таблицы "Наши сотрудники", f1400 - поле Пользователь таблице 46
$telephone=$sotr['f8440']; // f8440 - поле с телефоном
if( $telephone==89991112233) {
sendmail("СМС, $text, $admin_email);
}
Подскажите как правильно?

#15 f-jeka

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

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

Отправлено 11 Август 2020 - 23:31

Все разобрался.
Спасибо.
Надо было по полю Имя связывать вот так
$sotr = data_select_array(46, "f483=",$line['Ответственный']);





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

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