Php moodle:stdclass对象中的SQL where子句
我使用moodle和函数get_course_students来获取学生列表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] =
$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函数。