version 1.114, 2004/02/02 21:45:12
|
version 1.115, 2004/02/03 20:44:06
|
Line 1919 able to answer it correctly.
|
Line 1919 able to answer it correctly.
|
################################################ |
################################################ |
################################################ |
################################################ |
sub get_problem_statistics { |
sub get_problem_statistics { |
my ($students,$symb,$part,$courseid) = @_; |
my ($Sections,$status,$symb,$part,$courseid) = @_; |
return if (! defined($symb) || ! defined($part)); |
return if (! defined($symb) || ! defined($part)); |
$courseid = $ENV{'request.course.id'} if (! defined($courseid)); |
$courseid = $ENV{'request.course.id'} if (! defined($courseid)); |
# |
# |
Line 1933 sub get_problem_statistics {
|
Line 1933 sub get_problem_statistics {
|
# |
# |
$dbh->do('DROP TABLE '.$stats_table); # May return an error |
$dbh->do('DROP TABLE '.$stats_table); # May return an error |
my $request = |
my $request = |
'CREATE TEMPORARY TABLE '.$stats_table. |
'CREATE TEMPORARY TABLE '.$stats_table.' '. |
' SELECT student_id,solved,award,awarded,tries FROM '.$performance_table. |
'SELECT a.student_id,a.solved,a.award,a.awarded,a.tries '. |
' WHERE symb_id='.$symb_id.' AND part_id='.$part_id; |
'FROM '.$performance_table.' AS a '; |
if (defined($students)) { |
if ((defined($Sections) && lc($Sections->[0]) ne 'all') || |
|
(defined($status) && lc($status) ne 'any')) { |
|
$request .= 'NATURAL LEFT JOIN '.$student_table.' AS b '; |
|
} |
|
$request .= ' WHERE a.symb_id='.$symb_id.' AND a.part_id='.$part_id; |
|
if (defined($Sections) && lc($Sections->[0]) ne 'all') { |
$request .= ' AND ('. |
$request .= ' AND ('. |
join(' OR ', map {'student_id='. |
join(' OR ', map { "b.section='".$_."'" } @$Sections |
&get_student_id($_->{'username'}, |
|
$_->{'domain'}) |
|
} @$students |
|
).')'; |
).')'; |
} |
} |
# &Apache::lonnet::logthis($request); |
if (defined($status) && lc($status) ne 'any') { |
|
$request .= " AND b.status='".$status."'"; |
|
} |
$dbh->do($request); |
$dbh->do($request); |
# &Apache::lonnet::logthis('request = '.$/.$request); |
# &Apache::lonnet::logthis('request = '.$/.$request); |
$request = 'SELECT COUNT(*),SUM(tries),MAX(tries),AVG(tries),STD(tries) '. |
$request = 'SELECT COUNT(*),SUM(tries),MAX(tries),AVG(tries),STD(tries) '. |