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


Дополнительное поле у пользователя.


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

#1 Fidget

    Участник

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

Отправлено 26 Август 2009 - 14:58

Возможно добавление дополнительных полей для пользователей?

Задача следующая: Для каждого пользователя или группы пользователей добавить поле "Процент %".
И в зависимости от этого процента выводить его прибыль с каждого проекта.

#2 CbCoder

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

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

Отправлено 26 Август 2009 - 15:21

Да, конечно. Создаете таблицу с полем типа "пользователь" и любым количеством других нужных вам дополнительных полей, включая процент, расчет прибыли и т.п., и затем занесите туда данные по каждому пользователю.

#3 Fidget

    Участник

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

Отправлено 26 Август 2009 - 16:14

Подскажите тогда каким образом не реализовать следующий функционал:

Есть таблица "Котрагенты", в которой есть поле "Куратор" с типом "кто добавил".
Есть таблица "Проекты", в которой есть поле "Контрагент" с типом "связь" (поле связи "Котрагенты.Название").
Есть таблица "Сотрудники", в которой есть поле "ФИО" с типом "пользователь" и есть поле "Ставка %".

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

Вывод куратора:
$thisDataArr = data_table("Проекты","id={ID}");
$ClientDataArr = data_table("Контрагенты","id=".$thisDataArr['Название']);

$sqlQuery = "SELECT * FROM ".USERS_TABLE." WHERE id=".$ClientDataArr['Куратор'];
$result = mysql_query($sqlQuery);
$row = mysql_fetch_array($result);

return $row['fio'];

Вывод процента:
$thisDataArr = data_table("Web проекты","id={ID}");
$ClientDataArr = data_table("Контрагенты","id=".$thisDataArr['Название']);
$UserDataArr = data_table("Сотрудники", "f1=".$ClientDataArr['Куратор']);

return $UserDataArr['Ставка %'];

В принципе все выводится, что нужно. Но когда делаю поиск выдается след. ошибка
You have an error in your SQL syntax near '' at line 1
SELECT * FROM f_data WHERE table_id=51 AND id=


#4 CbCoder

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

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

Отправлено 27 Август 2009 - 09:33

Видимо в какой-то из таблиц у вас отсутствует значение в поле связи. Соответсвенно вместо ID строки связанной таблицы возвращается пустая строка (""), отчего в запросе и возникает ошибка. Для того чтобы этого избежать, необходимо вместо "id=".$field писать "id='".$field."'" , т.е. обрамлять значение поля связи одинарными кавычками.

В вашем примере соответсвенно нужно изменить:

$ClientDataArr = data_table("Контрагенты","id=".$thisDataArr['Название']);
$sqlQuery = "SELECT * FROM ".USERS_TABLE." WHERE id=".$ClientDataArr['Куратор'];
$ClientDataArr = data_table("Контрагенты","id=".$thisDataArr['Название']);
$UserDataArr = data_table("Сотрудники", "f1=".$ClientDataArr['Куратор']);

#5 Fidget

    Участник

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

Отправлено 27 Август 2009 - 10:14

Ошибка пропала только когда я сделал следующее:
$thisDataArr = data_table("Web проекты","id='{ID}'");

Но появилась следующая проблема. Поиск по полю куратор не происходит. Ставлю "равно" или "содержит", выдается пустая таблица.

#6 CbCoder

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

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

Отправлено 27 Август 2009 - 13:43

Поле "куратор" какого типа? Какое условие задаете?

Вобще желательно как можно подробнее описывать ситуацию.

#7 Fidget

    Участник

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

Отправлено 27 Август 2009 - 13:51

Поле куратор - тип "РНР-код".
Данные берутся из таблицы "Контрагенты".

Задаю условие "равно" или "содержит" и Имя куратора.

#8 CbCoder

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

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

Отправлено 27 Август 2009 - 13:57

К сожалению по php-полям поиск невозможен, т.к. поиск ведется по базе данных, а значения php-полей в бд не хранятся, они вычисляются при каждом открытии таблицы.





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

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