- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть таблица modules в которой хранится список модулей.
Есть таблица mod_access в которой хранятся разрешения доступа к модулям.
Когда идет проверка, мы имеем только название модуля.
Он по названию модуля должен вытащить его id, найти его в таблице доступа там, где uid=$_SESSION['user_id'] и вернуть либо true если поле разрешения seer =1 , либо false если =0.
Но он почему-то очень неправильно работает. Помогите пожалуйста поправить запрос.
0 строк в результате = 0 в a.seer
В LEFT или RIGHT JOIN нельзя ставить условия WHERE для второй таблицы, т.к. условием Вы как раз отсекаете все эти записи. Нужно делать условия выборки второй таблицы через ON.
SELECT a.mid, a.seer, m.id, m.module
FROM ".$prefix."_mod_access AS a
LEFT JOIN ".$prefix."_modules AS m
ON (a.mid=m.id AND m.module='".$mod_name."')
WHERE a.uid=".$_SESSION['user_id']."
LIMIT 1
Большое спасибо. Тему можно закрыть.