|
|
|
| Ну в общем в базе Mysql есть примерно такая таблица:
tab_num | name | ITS | PEO | OK
____________________________________________________
3694 | Петров | checked | |
456 | Иванов | | | checked
289 | Сидоров | | checked |
Поля ITS, PEO,OK - это группы.
Как узнать (не зная имен групп и их количество) к какой группе принадлежит тот или иной пользователь ?
Короче надо вытащить из базы что Петров принадлежит группе ITS, Иванов - OK, а Сидоров - PEO. | |
|
|
|
|
|
|
|
для: Felix
(19.01.2006 в 12:27)
| | а к нескольким группам сразу он может принадлежать? если нет, то лучше бы сделать одно поле типа enum, где и хранить название группы. | |
|
|
|
|
|
|
|
для: Loki
(19.01.2006 в 13:41)
| | Сразу к нескольким группам принадлежать не может. Поле enum сделать не представляется возможным потому как к етой табличке привязаны куча других скриптов. Мне надо узнать принадлежность именно из етой таблицы. | |
|
|
|
|
|
|
|
для: Felix
(20.01.2006 в 04:33)
| | Люди, ну помогите пожалуйста....., многоуважаемый cheops ну неужели вы тоже не знаете ответа на мой вопрос..... ну очень надо..... | |
|
|
|
|
|
|
|
для: Felix
(19.01.2006 в 12:27)
| | Я вопрос понял, только после того, как сделал так
tab_num | name | ITS | PEO | OK
____________________________________________________
3694 | Петров | checked | |
456 | Иванов | | | checked
289 | Сидоров | | checked |
|
| |
|
|
|
|
|
|
|
для: cheops
(23.01.2006 в 13:31)
| | Теперь не понятно вот что, в таблице ясно указано, к какой группе принадлежит тот или иной пользователь - что вызывает затруднение? Какова исходня задача? Что нам известно на входе скрипта и что мы должны выяснить к его концу? | |
|
|
|
|
|
|
|
для: cheops
(23.01.2006 в 13:33)
| | Затруднение вызывает то, что я не знаю каким образом вывести в браузер имя группы, т.к. оно является именем поля а не значением (что намного для меня было бы проще), причем надо сделать ето не зная количество групп и их имена потому что они генерируются автоматом при создании новой группы. Короче на входе скрипта мы имеем только пользователя его табельный номер ну и имя таблици из которой надо установить принадлежность пользователя к группе по метке 'checked' Каждый пользователь может принадлежать только к одной группе, т.е. у каждого только один 'checked' . Ну вроде понятно написал.
В браузере нужен примерно такой результат:
Петров 3694 ITS
Иванов 456 OK
Сидоров 289 PEO | |
|
|
|
|
|
|
|
для: Felix
(24.01.2006 в 05:01)
| | >они генерируются автоматом при создании новой группы.
Т.е. таблице добавляется ещё один столбец? Обычно так не поступаю, разумнее под группы выделить отдельную таблицу и хранить имена там, а в таблице пользователей хранить лишь вторичный ключ, указывающий на группу. Кстати и объём базы данных уменьшится. | |
|
|
|
|
|
|
|
для: cheops
(24.01.2006 в 12:46)
| | >Т.е. таблице добавляется ещё один столбец? Именно так.
Я понимаю что так не поступают и тем не менее есть ли решение поставленой задачи ? Или никак не получится не меняя таблицы ? | |
|
|
|
|
|
|
|
для: Felix
(24.01.2006 в 12:58)
| | Если уже ничего сделать нельзя, то можно попытаться поступить так
<?php
$query = "SELECT * FROM tbl WHERE tab_num = 3694";
$usr = mysql_query($query);
if(!$usr) exit(mysql_error());
$user = mysql_fetch_assoc($usr);
// Выводим табельный номер и имя
echo $user['tab_num']."<br>";
echo $user['name']."<br>";
// Уничтожаем табельный номер и имя
unset($user['tab_num'], $user['name']);
// Отпределяем название группы
foreach($user as $name => $value)
{
if($value == 'checked')
{
echo $name; // Это имя группы
break; // Поидаем цикл
}
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(24.01.2006 в 13:14)
| | Спасибо, то что надо :) | |
|
|
|