Возможно добавление дополнительных полей для пользователей?
Задача следующая: Для каждого пользователя или группы пользователей добавить поле "Процент %".
И в зависимости от этого процента выводить его прибыль с каждого проекта.
Дополнительное поле у пользователя.
Автор Fidget, 26 авг. 2009 14:58
Сообщений в теме: 7
#1
Отправлено 26 Август 2009 - 14:58
#2
Отправлено 26 Август 2009 - 15:21
Да, конечно. Создаете таблицу с полем типа "пользователь" и любым количеством других нужных вам дополнительных полей, включая процент, расчет прибыли и т.п., и затем занесите туда данные по каждому пользователю.
#3
Отправлено 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
Отправлено 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['Куратор']);
В вашем примере соответсвенно нужно изменить:
$ClientDataArr = data_table("Контрагенты","id=".$thisDataArr['Название']);
$sqlQuery = "SELECT * FROM ".USERS_TABLE." WHERE id=".$ClientDataArr['Куратор'];
$ClientDataArr = data_table("Контрагенты","id=".$thisDataArr['Название']);
$UserDataArr = data_table("Сотрудники", "f1=".$ClientDataArr['Куратор']);
#5
Отправлено 27 Август 2009 - 10:14
Ошибка пропала только когда я сделал следующее:
Но появилась следующая проблема. Поиск по полю куратор не происходит. Ставлю "равно" или "содержит", выдается пустая таблица.
$thisDataArr = data_table("Web проекты","id='{ID}'");
Но появилась следующая проблема. Поиск по полю куратор не происходит. Ставлю "равно" или "содержит", выдается пустая таблица.
#6
Отправлено 27 Август 2009 - 13:43
Поле "куратор" какого типа? Какое условие задаете?
Вобще желательно как можно подробнее описывать ситуацию.
Вобще желательно как можно подробнее описывать ситуацию.
#7
Отправлено 27 Август 2009 - 13:51
Поле куратор - тип "РНР-код".
Данные берутся из таблицы "Контрагенты".
Задаю условие "равно" или "содержит" и Имя куратора.
Данные берутся из таблицы "Контрагенты".
Задаю условие "равно" или "содержит" и Имя куратора.
#8
Отправлено 27 Август 2009 - 13:57
К сожалению по php-полям поиск невозможен, т.к. поиск ведется по базе данных, а значения php-полей в бд не хранятся, они вычисляются при каждом открытии таблицы.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных













