我正面临着一个问题。我必须增加价值才能在情绪化中删除列表。我创建了一个函数,从数据库中获取结果并显示在下拉框中。当我在情绪化中添加新的课程时,第一次下拉列表似乎是空的。当我再次进入同一课程的活动时,它就显示了价值。但它并不能在第一次尝试中显示出价值。我正在使用这个函数
function getActivities($cid)
{
global $DB;
global $CFG;
$res=array();
$sql="SELECT m.id as id, m.name as name
FROM {$CFG->prefix}course_modules as cm,{$CFG->prefix}modules as m,{$CFG->prefix}course as c,{$CFG->prefix}activitysetmodule as asm
WHERE asm.course = cm.course
AND asm.course = c.id
AND cm.module = m.id
AND cm.course =$cid";
$rec2=array();
$rec1=array();
$result=$DB->get_records_sql($sql);
foreach($result as $rec)
{
$rec2[]=$rec->name;
}
foreach($result as $rec)
{
$rec1[]=$rec->id;
}
$c = array_combine($rec1,$rec2);
return $c;请帮我找一下。
发布于 2014-10-01 05:57:42
这是因为当课程第一次创建时,不会有任何模块,$cid将为空白。
另外,对于Moodle 2,您应该使用{tablename}语法而不是{$CFG->前缀}
此外,还有一个函数作为菜单检索数据:
function getActivities($cid) {
global $DB;
if (empty($cid)) {
// New course.
return array();
}
$sql = "SELECT m.id, m.name
FROM {modules} m
JOIN {course_modules} cm ON cm.module = m.id AND cm.course = :courseid";
$result = $DB->get_records_sql_menu($sql, array('courseid' => $cid));
return $result;
}https://stackoverflow.com/questions/26134613
复制相似问题