Php moodle:stdclass对象中的SQL where子句

Php moodle:stdclass对象中的SQL where子句,php,mysql,sql,moodle,Php,Mysql,Sql,Moodle,我使用moodle和函数get_course_students来获取学生列表 $students=get_course_students($course->id,'lastname'); 回音打印(学生); 这将产生: Array ( [4382] => stdClass Object ( [confirmed] => 1 , [username] => test22 , [firstname] => test , [lastname] =

我使用moodle和函数get_course_students来获取学生列表

$students=get_course_students($course->id,'lastname');
回音打印(学生);
这将产生:

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语句来实现这一点?如果您有任何帮助,我们将不胜感激。

我想您正在使用一个定制的表格。我在Moodle-1.9或Moodle-2.0中找不到表名*\u报告

但是,这里有一个可能的解决方案:

如果get_course_的学生给你用户名,那么你可以使用

WHERE course = $course->id AND user IN (555,556)
如果get_course_学生返回一个值数组,您可以使用PHP的内爆来获取以逗号分隔的用户ID列表


希望这有帮助。

函数
get\u course\u students()
背后的SQL是什么?你不能只使用
count\u course\u students()
?这将计算课程中的学生,我想计算mdl\u ilp\u报告中的记录,其中course=$course->id和((user=555)或(user=556)或(user=556))用户ID将取自get_course_students函数。