|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » MySQL 3.23. Вывих мозга при создании запроса |
|
MySQL 3.23. Вывих мозга при создании запроса
|
pauluss
Сообщения: n/a |
Имею хотение натворить красивость, но не имею мозгов. Надеюсь на Ваши.
Суть: Есть юзера. Есть группы(Роли), в которые можно объединять юзеров. Каждый юзер может входить в любое количество групп или не входить ни в одну. Есть куча файлов. Надо прописать права на файлы для юзеров и/или групп. Натворил таблицы: users: поля: id (primary key) ................. groups: поля: id (primary key) ....... usgr: (связи юзеров и групп) поля: id_user id_group files: поля: id (primary key) ............................ permit_users: (связи файлов с юзерами. Иными словами права юзеров на файл) поля: id_user id_file permit_groups: (связи файлов с группами. Иными словами права групп юзеров на файл) поля: id_group id_file Вопрос: Как одним запросом по id файла определить доступен ли он данному юзеру? (по id юзера) |
|
Отправлено: 18:45, 28-11-2005 |
Ветеран Сообщения: 1864
|
Профиль | Отправить PM | Цитировать Цитата:
SELECT * from permit_users WHERE id_file='$file' AND id_user='$user' |
|
------- Отправлено: 01:12, 29-11-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
pauluss
Сообщения: n/a |
vadimiron Юзер может состоять в группе, для которой прописаны разрешения в permit_grops. Я выполняю два запроса:
$res=SELECT permit_group.gr FROM permit_group,usergroup WHERE (permit_group.gr=usergroup.gr) AND (permit_group.file=$file_id) AND (usergroup.us=$userid); $res2=SELECT user FROM permit_user WHERE (user=$userid) AND (file='$fileid); Потом проверяю, если есть хоть одна строка результата хотя бы в одном запросе, значит файлик разрешен, иначе нет: if( (mysql_num_rows($res)+mysql_num_rows($res2))>0 ) echo"разрешен"; else echo"нафик"; Но мне не нравится. не красиво. Как обойтись одним запросом? |
Отправлено: 11:55, 29-11-2005 | #3 |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать например, UNION первого запроса со вторым. можно с группировкой по user_id, чтоб не тащить лишнего
|
Отправлено: 12:43, 29-11-2005 | #4 |
Ветеран Сообщения: 1864
|
Профиль | Отправить PM | Цитировать Цитата:
Я не знаю точно поддерживает ли третья ветка вложенные запросы, то можно вложенным Возможно есть ошибки, так как давно этим не занимался:
|
||
Отправлено: 23:36, 29-11-2005 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Ошибка - [решено] Ошибка при создании оснастки | pelmen106 | Microsoft Windows 2000/XP | 10 | 18-04-2010 12:48 | |
ошибка при создании образа | altairus | Автоматическая установка Windows 2000/XP/2003 | 5 | 01-02-2009 18:06 | |
Ошибка - при создании нового подключения при сохранений логина и пароля пишет ошибку 1305 | p.s-bagdan | Microsoft Windows 2000/XP | 1 | 09-10-2008 09:33 | |
Router - Ошибка при создании сети | Glamur | Сетевое оборудование | 3 | 03-10-2008 21:49 | |
Отключение запроса пароля при загрузке Винды... | torino | Microsoft Windows 2000/XP | 3 | 15-10-2006 17:29 |
|