Database error when submitting form

Database error when submitting form

by Daniele Filipe -
Number of replies: 1

Hello,


When submitting my form (on an enrolment module) I get the following error:


Can not find data record in database table course.

More information about this error

Debug info: SELECT * FROM {course} WHERE id = ?

[array (

0 => 0,

)] 

Error code: invalidrecord

Stack trace:

line 1385 of \lib\dml\moodle_database.php: dml_missing_record_exception thrown

line 1361 of \lib\dml\moodle_database.php: call to moodle_database->get_record_select()

line 36 of \enrol\index.php: call to moodle_database->get_record()


The code goes as follows:

require_once('key_form.php');
$enrolform = new enrol_paypal_key_form();
if ($fromenrolform = $enrolform->get_data()) {
    // Form was validated
    echo "submitted";
    include($CFG->dirroot.'/enrol/paypal/enrol.html');
} else {
    // Form has not been submitted or not validated
    $enrolform->set_data(required_param('id', PARAM_INT));
    $enrolform->display();
}


The form class (enrol_paypal_key_form):

function definition() {

   global $DB, $CFG;
    $mform = $this->_form;
    $mform->addElement('hidden', 'id');
    $mform->setType('id', PARAM_INT);
    $mform->addElement('hidden', 'courseid');
    $mform->setType('courseid', PARAM_INT);
    $mform->addElement('text', 'enrolkey', get_string('enrolkeyform', 'enrol_paypal'));
    $mform->setType('enrolkey', PARAM_ALPHANUM);
    $this->add_action_buttons(FALSE,get_string('submit'));
}
function validation($data, $files) {
    global $DB, $CFG;
    return array();
}


I don't quite understand what I'm missing here. I don't recall making a database query.

My Questions are:

  1. Why am I getting a database error?
  2. Why does my courseid parameter disappear once I submit the form?


Thank you,

Daniele

Average of ratings: -