Za předpokladu, že roli učitele přiřazujete pouze na úrovni kurzu (a nikoliv kategorie nebo jako globální), může vám pro nasměrování pomoci následující:
<?php
define('CLI_SCRIPT', true);
require('config.php');
$sql = "SELECT c.shortname, c.fullname, u.firstname, u.lastname
FROM {role} r
JOIN {context} ctx ON ctx.contextlevel = 50
JOIN {course} c ON c.id = ctx.instanceid
JOIN {role_assignments} ra ON ra.roleid = r.id AND r.shortname = 'teacher'
JOIN {user} u ON ra.userid = u.id
ORDER BY c.id, u.id";
$records = $DB->get_recordset_sql($sql);
foreach ($records as $record) {
echo "$record->shortname $record->fullname $record->firstname $record->lastname" . PHP_EOL;
}
$records->close();
Hodnota contextlevel = 50 udává, že se budou hledat přiřazení role pouze na úrovni kurzu. Podmínku r.shortname = 'teacher' si možná budete muset upravit podle toho, jaké údaje máte v tabulce {role}.
Pokud byste si s uvedeným SQL hrál přímo v klientovi, musíte samozřejmě namísto {tabulka} používat skutečný název včetně předdefinovaného prefixu, např. mdl_role namísto {role}.
HTH