Moodle: SQL, где предложение из объекта stdclass - PullRequest
1 голос
/ 28 ноября 2011

Я использую Moodle и функцию get_course_students для получения списка студентов

$students = get_course_students($course->id, 'lastname'); 
echo print_r($students); 

Это выводит:

Array (
  [4382] => stdClass Object (
    [confirmed] => 1 
  , [username] => test22 
  , [firstname] => test 
  , [lastname] => 22 
  , [maildisplay] => 2 
  , [mailformat] => 1 
  , [maildigest] => 0 
  , [email] => test22@test.couk 
  , [city] => test 
  , [country] => GB 
  , [picture] => 1 
  , [idnumber] => 
  , [department] => 
  , [institution] => 
  , [emailstop] => 0 
  , [lang] => en_utf8 
  , [timezone] => 99 
  , [lastaccess] => 
  , [id] => 4382 )
  [518] => stdClass Object (
  , [confirmed] => 1 
  , [username] => st999999 
  , [firstname] => st999999 
  , [lastname] => account 
  , [maildisplay] => 2 
  , [mailformat] => 1 
  , [maildigest] => 0 
  , [email] => st999999@test.co.uk 
  , [city] => 
  , [country] => GB 
  , [picture] => 1 
  , [idnumber] => 
  , [department] => 
  , [institution] => 
  , [emailstop] => 0 
  , [lang] => en_utf8 
  , [timezone] => 99 
  , [lastaccess] => 1315843176 
  , [id] => 518
  )
)

Затем я хочу посчитать количество записей в таблице, но только тех студентов, которые в данный момент назначены на курс.

$totalreportscountrecords = count_records_sql("SELECT COUNT(*) FROM mdl_ilp_reports WHERE course = $course->id AND user = $students");

Как мне изменить оператор SQL, чтобы сделать это? Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 30 ноября 2011

Я полагаю, вы используете пользовательскую таблицу. Я не смог найти имена таблиц * _reports в Moodle-1.9 или Moodle-2.0.

Однако, вот возможное решение:

если get_course_students дают вам идентификаторы пользователей, тогда вы можете использовать

WHERE course = $course->id AND user IN (555,556)

Вы можете использовать имплозу PHP для получения списка идентификаторов пользователей, разделенных запятыми, при условии, что get_course_students возвращают массив значений.

Надеюсь, это поможет.

...