Trong file attempt.php, em muốn thực hiện câu update table để thiết lập lại thời gian bắt đầu thi (timestart) với đúng user, quiz và id; câu lệnh của em như sau:
$attempt->timestart=$buffer;//gán timestart bằng một giá trị nào đó.
update_record('quiz_attempts', $attempt);//update table
hoặc:
set_field('quiz_attempts','timestart',$buffer,'quiz', $quiz->id,'userid', $USER->id,'id',160);// id em gán tĩnh
Cả hai câu lệnh này em tham khảo trong các module khác, nhưng em không thể thực hiện được.
Em chỉnh sửa rất nhiều nhưng không được.
Nếu anh biết câu lệnh (trong các hàm của moodle) nào dùng để update xin giúp em với.
Hai hàm em dùng hoàn toàn chính xác, đều dùng để cập nhật database và đặt trong lib/datalib.php.
Anh có một số nhận xét như sau:
1. Hàm set_field em dùng thừa quá số tham số cho phép. Hàm này cho phép cập nhật 1 trường field1 với tối đa hai điều kiện field2 và field3. Hàm của em có đến 4 field.
Signature: function set_field($table, $newfield, $newvalue, $field1, $value1, $field2='', $value2='', $field3='', $value3='')
2. Hàm update_record em giường như dùng đúng theo mô tả. Do đó anh cần biết thêm thông báo của môi trường chạy (Run-Time Environment) về kết quả thực hiện hàm này. Em có thể chụp màn hình hoặc gửi thông báo sau khi thực hiện hàm này lên đây không?
Chúc thành công,
Vũ Hùng