Как найти пользователя phpBB, у которого пользовательское поле равно ‘1234’?

#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