Joomla 3x - Поля профиля - PullRequest
       2

Joomla 3x - Поля профиля

0 голосов
/ 02 ноября 2018

Я добавил флажок в профиль пользователя, и мне нужно знать, как получить список всех адресов электронной почты пользователей, на которых они отмечены. Я хотел бы просто выполнить запрос SQL, но не вижу, где хранится значение.

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Хорошо - теперь мне удалось ответить на мой собственный вопрос (я взял экспорт базы данных в виде файла SQL, поставил галочку в качестве тестового пользователя, сделал другой экспорт, а затем сравнил файлы, чтобы увидеть, что изменилось).

Значения хранятся в таблице jos_fields_values. Приведенный ниже запрос предполагает наличие только одного флажка - если у вас их несколько, вам также потребуется запросить field_id: замените xxx префиксом вашей установки Joomla.

ВЫБРАТЬ электронную почту из xxx_users ВНУТРЕННЕЕ СОЕДИНЕНИЕ xxx_fields_values ​​ON xxx_users.ID = xxx_fields_values.item_id

0 голосов
/ 02 ноября 2018

Все данные профиля хранятся в таблице #__user_profiles. Для извлечения данных из таблицы профиля вы можете выполнить этот запрос

// Get a db connection.
$db = JFactory::getDbo();

// Create a new query object.
$query = $db->getQuery(true);

// Select all records from the user profile table where key begins with "checkbox.".
// Order it by the ordering field.
$query->select($db->quoteName(array('user_id', 'profile_key', 'profile_value')));
$query->from($db->quoteName('#__user_profiles'));
$query->where($db->quoteName('profile_key') . ' LIKE '. $db->quote('\'checkbox.%\''));

// Reset the query using our newly populated query object.
$db->setQuery($query);

// Load the results as a list of stdClass objects (see later for more options on retrieving data).
$results = $db->loadObjectList();

Вы получите список объектов всех тех пользователей, которые нажали на ваш флажок. Не забудьте использовать имя profile_key вместо checkbox

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...