version 1.103, 2003/10/09 14:50:01
|
version 1.108, 2003/10/30 16:20:18
|
Line 1039 sub get_student_id {
|
Line 1039 sub get_student_id {
|
$have_read_student_table = 1; |
$have_read_student_table = 1; |
} |
} |
if (! exists($ids_by_student{$student})) { |
if (! exists($ids_by_student{$student})) { |
&Apache::lonmysql::store_row($student_table,[undef,$student,undef]); |
&Apache::lonmysql::store_row($student_table, |
|
[undef,$student,undef]); |
undef(%ids_by_student); |
undef(%ids_by_student); |
my @Result = &Apache::lonmysql::get_rows($student_table); |
my @Result = &Apache::lonmysql::get_rows($student_table); |
foreach (@Result) { |
foreach (@Result) { |
Line 1987 sub execute_SQL_request {
|
Line 1988 sub execute_SQL_request {
|
return (); |
return (); |
} |
} |
|
|
#sub get_timestamp_data { |
sub get_student_data { |
# my ($students,$symb, |
my ($students,$courseid) = @_; |
sub get_optionresponse_data { |
$courseid = $ENV{'request.course.id'} if (! defined($courseid)); |
|
&setup_table_names($courseid); |
|
my $dbh = &Apache::lonmysql::get_dbh(); |
|
return undef if (! defined($dbh)); |
|
my $request = 'SELECT '. |
|
'student_id, student '. |
|
'FROM '.$student_table; |
|
if (defined($students)) { |
|
$request .= ' WHERE ('. |
|
join(' OR ', map {'student_id='. |
|
&get_student_id($_->{'username'}, |
|
$_->{'domain'}) |
|
} @$students |
|
).')'; |
|
} |
|
$request.= ' ORDER BY student_id'; |
|
my $sth = $dbh->prepare($request); |
|
$sth->execute(); |
|
if ($dbh->err) { |
|
&Apache::lonnet::logthis('error = '.$dbh->errstr()); |
|
return undef; |
|
} |
|
my $dataset = $sth->fetchall_arrayref(); |
|
if (ref($dataset) eq 'ARRAY' && scalar(@$dataset)>0) { |
|
return $dataset; |
|
} |
|
} |
|
|
|
sub RD_student_id { return 0; } |
|
sub RD_awarddetail { return 1; } |
|
sub RD_response_eval { return 2; } |
|
sub RD_submission { return 3; } |
|
sub RD_timestamp { return 4; } |
|
sub RD_tries { return 5; } |
|
sub RD_sname { return 6; } |
|
|
|
sub get_response_data { |
my ($students,$symb,$response,$courseid) = @_; |
my ($students,$symb,$response,$courseid) = @_; |
return undef if (! defined($symb) || |
return undef if (! defined($symb) || |
! defined($response)); |
! defined($response)); |
Line 2002 sub get_optionresponse_data {
|
Line 2039 sub get_optionresponse_data {
|
my $dbh = &Apache::lonmysql::get_dbh(); |
my $dbh = &Apache::lonmysql::get_dbh(); |
return undef if (! defined($dbh)); |
return undef if (! defined($dbh)); |
my $request = 'SELECT '. |
my $request = 'SELECT '. |
'a.response_specific_value, a.submission, b.timestamp, c.tries '. |
'a.student_id, a.awarddetail, a.response_specific_value, '. |
|
'a.submission, b.timestamp, c.tries, d.student '. |
'FROM '.$fulldump_response_table.' AS a '. |
'FROM '.$fulldump_response_table.' AS a '. |
'LEFT JOIN '.$fulldump_timestamp_table.' AS b '. |
'LEFT JOIN '.$fulldump_timestamp_table.' AS b '. |
'ON a.symb_id=b.symb_id AND a.student_id=b.student_id AND '. |
'ON a.symb_id=b.symb_id AND a.student_id=b.student_id AND '. |
Line 2010 sub get_optionresponse_data {
|
Line 2048 sub get_optionresponse_data {
|
'LEFT JOIN '.$fulldump_part_table.' AS c '. |
'LEFT JOIN '.$fulldump_part_table.' AS c '. |
'ON a.symb_id=c.symb_id AND a.student_id=c.student_id AND '. |
'ON a.symb_id=c.symb_id AND a.student_id=c.student_id AND '. |
'a.part_id=c.part_id AND a.transaction = c.transaction '. |
'a.part_id=c.part_id AND a.transaction = c.transaction '. |
|
'LEFT JOIN '.$student_table.' AS d '. |
|
'ON a.student_id=d.student_id '. |
'WHERE '. |
'WHERE '. |
'a.symb_id='.$symb_id.' AND a.response_id='.$response_id; |
'a.symb_id='.$symb_id.' AND a.response_id='.$response_id; |
if (defined($students)) { |
if (defined($students)) { |
Line 2024 sub get_optionresponse_data {
|
Line 2064 sub get_optionresponse_data {
|
# &Apache::lonnet::logthis("request =\n".$request); |
# &Apache::lonnet::logthis("request =\n".$request); |
my $sth = $dbh->prepare($request); |
my $sth = $dbh->prepare($request); |
$sth->execute(); |
$sth->execute(); |
|
if ($dbh->err) { |
|
&Apache::lonnet::logthis('error = '.$dbh->errstr()); |
|
return undef; |
|
} |
my $dataset = $sth->fetchall_arrayref(); |
my $dataset = $sth->fetchall_arrayref(); |
if (ref($dataset) eq 'ARRAY' && scalar(@$dataset)>0) { |
if (ref($dataset) eq 'ARRAY' && scalar(@$dataset)>0) { |
return $dataset; |
return $dataset; |
} |
} |
} |
} |
|
|
|
sub RT_student_id { return 0; } |
|
sub RT_awarded { return 1; } |
|
sub RT_tries { return 2; } |
|
sub RT_timestamp { return 3; } |
|
|
|
sub get_response_time_data { |
|
my ($students,$symb,$part,$courseid) = @_; |
|
return undef if (! defined($symb) || |
|
! defined($part)); |
|
$courseid = $ENV{'request.course.id'} if (! defined($courseid)); |
|
# |
|
&setup_table_names($courseid); |
|
my $symb_id = &get_symb_id($symb); |
|
my $part_id = &get_part_id($part); |
|
# |
|
my $dbh = &Apache::lonmysql::get_dbh(); |
|
return undef if (! defined($dbh)); |
|
my $request = 'SELECT '. |
|
'a.student_id, a.awarded, a.tries, b.timestamp '. |
|
'FROM '.$fulldump_part_table.' AS a '. |
|
'NATURAL LEFT JOIN '.$fulldump_timestamp_table.' AS b '. |
|
# 'ON a.symb_id=b.symb_id AND a.student_id=b.student_id AND '. |
|
# 'a.transaction = b.transaction '. |
|
'WHERE '. |
|
'a.symb_id='.$symb_id.' AND a.part_id='.$part_id; |
|
if (defined($students)) { |
|
$request .= ' AND ('. |
|
join(' OR ', map {'a.student_id='. |
|
&get_student_id($_->{'username'}, |
|
$_->{'domain'}) |
|
} @$students |
|
).')'; |
|
} |
|
$request .= ' ORDER BY b.timestamp'; |
|
# &Apache::lonnet::logthis("request =\n".$request); |
|
my $sth = $dbh->prepare($request); |
|
$sth->execute(); |
|
if ($dbh->err) { |
|
&Apache::lonnet::logthis('error = '.$dbh->errstr()); |
|
return undef; |
|
} |
|
my $dataset = $sth->fetchall_arrayref(); |
|
if (ref($dataset) eq 'ARRAY' && scalar(@$dataset)>0) { |
|
return $dataset; |
|
} |
|
|
|
} |
|
|
################################################ |
################################################ |
################################################ |
################################################ |
|
|