#php #sql #phpbb
#php #sql #phpbb
Вопрос:
У меня установлена phpBB. Я добавил пользовательское поле профиля под названием ‘номер страховки’. У каждого пользователя там разное значение. Я хотел бы получить пользователя, у которого значение равно ‘1234’.
Как получить пользователя по пользовательскому полю?
Комментарии:
1. Вы смотрели на структуру базы данных? Там вы найдете нужную таблицу / поле для запроса
Ответ №1:
Сначала выполните:
SELECT * FROM phpbb_users LIMIT 1
Чтобы проверить имя пользовательского поля. Это может быть insurancenumber
, insurance_number
и т.д.
Подобный запрос выберет ваши данные:
SELECT u.user_id, u.username
FROM phbb_users u
INNER JOIN phbb_profile_fields_data pf ON u.users_id = pf.users_id
WHERE u.`insurance number` = '1234'
Ответ №2:
Вместо запуска скриптов для поиска пользовательских полей профиля я просто использовал графический интерфейс администратора phpBB для получения имен полей. В графическом интерфейсе администратора phpBB3 > вкладка «Пользователи и группы» > «Пользовательские поля профиля» в разделе «Пользователи» левой навигации.
Данные пользовательского поля профиля хранятся в таблице phpbb_profile_fields_data. Имена столбцов определяются с использованием идентификатора поля с префиксом «pf_». Данные нашего поля «company» хранятся в столбце pf_company таблицы phpbb_profile_fields_data.
SQL для получения списка имен пользователей с определенным значением в поле пользовательского профиля «company». Я использовал «Google» в качестве примера:
SELECT u.username
FROM phpbb_users u
INNER JOIN phpbb_profile_fields_data pf ON u.user_id = pf.user_id
WHERE pf.pf_company = 'Google'
ORDER BY u.username