今天做毕业设计,发现了这个以前一直没有在意的问题,即教师在Moodle中发布了一个作业(assignment),然后学生如果enrol in该课程后,可以提交自己的作业,学生也可以查看到自己提交的内容。
但是,教师在该作业的页面中中可以看到有几个人提交了该作业,即通过右上角的view X submitted assignments(X即为提交的学生数),点击进去后,居然没有显示,页面上只有一个Nothing to display!
这真是一个头疼的问题。
上网搜了半天,都没有结果。中文网页自然是搜不到的,资料少之又少。
用关键词moodle Nothing to display 总算搜到了(技术问题总是在国外网站上比较容易找到答案),一个法国人给出了原因,问题居然是mysql 5.5的问题,在moodle的mod/assignment/lib.php中的大约842行左右的sql查询语句触发了这个越界的问题(COALESCE(SIGN(SIGN(s.timemarked) + SIGN(s.timemarked – s.timemodified)), 0) AS status ‘),Mysql 对于这个问题也在官网上给出了解释:http://dev.mysql.com/doc/refman/5.5/en/out-of-range-and-overflow.html。
一个可行的解决方案是在mysql的my.ini的mysqld部分加下面这个语句:
sql-mode = 'NO_UNSIGNED_SUBTRACTION'
然后重启Mysql即可。
【参考文献】:
1. Assignment submissions not available after database export/import
2. 【分享】作業 – Nothing to display ( 更新至MySQL 5.5遇到的問題 )
3. 10.6 Out-of-Range and Overflow Handling
全文完。EOF
/* 原创文章,本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: Swarm’s Blog*/