Прежде всего, извините, потому что я все еще новичок и хочу узнать больше о кодировании.
Я сейчас работаю над этим. Моя 1-я, 2-я и 3-я таблица работают нормально. Моя проблема в том, что моя 4-я таблица не получает никаких значений. Я пытаюсь вставить данные в свою 4-ю таблицу с помощью оператора switch, где $ eGrad равно Grade Level. Я хочу вставить значения в мою таблицу st_grade (4-я таблица) на основе уровня обучения, и некоторые из них являются постоянными значениями.
Буду признателен за любую помощь. Спасибо! Вот код, над которым я работаю
public function insert($stID, $eFullname, $eGrad, $secID, $eStatus, $eSY, $syID, $rformOne, $rformTwo, $rPsa, $rGm, $rPic){
$firstTB = "INSERT INTO st_enrolled (e_stid, e_fullname,e_grade,e_status,e_sy) VALUES('$stID', '$eFullname', '$eGrad', '$eStatus', '$eSY')";
$secondTB = "INSERT INTO st_sy (st_sy_stid, st_sy_syid) VALUES('$stID', '$syID')";
$thirdTB = "INSERT INTO st_requirement (str_id, str_fullname, formOne, formTwo, psa, goodmoral, picture) VALUES ('$stID', '$eFullname', '$rformOne', '$rformTwo', '$rPsa', '$rGm', '$rPic')";
switch($eGrad){
case "Grade1" :
$fourthTB = "INSERT INTO `st_grade`(`st_id`,`subj_id`,`gr_id`,`sec_id`,`sy_id`,`first`,`second`,`third`,`fourth`,`ave`,`remarks`) VALUES
($stID, 1, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 2, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 3, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 4, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 5, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 6, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 7, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),";
break;
case "Grade2" :
$fourthTB = "INSERT INTO `st_grade`(`st_id`,`subj_id`,`gr_id`,`sec_id`,`sy_id`,`first`,`second`,`third`,`fourth`,`ave`,`remarks`) VALUES
($stID, 8, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 9, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 10, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 11, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 12, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 13, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 14, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),";
break;
default:
echo "error";
}
if ($this->conn->query($firstTB) && $this->conn->query($secondTB) && $this->conn->query($thirdTB) && $this->conn->query($fourthTB) ) {
return true;
} else {
return false;
}
}






Я удалил последнюю запятую в вашей строке sql, теперь она должна работать
public function insert($stID, $eFullname, $eGrad, $secID, $eStatus, $eSY, $syID, $rformOne, $rformTwo, $rPsa, $rGm, $rPic){
$firstTB = "INSERT INTO st_enrolled (e_stid, e_fullname,e_grade,e_status,e_sy) VALUES('$stID', '$eFullname', '$eGrad', '$eStatus', '$eSY')";
$secondTB = "INSERT INTO st_sy (st_sy_stid, st_sy_syid) VALUES('$stID', '$syID')";
$thirdTB = "INSERT INTO st_requirement (str_id, str_fullname, formOne, formTwo, psa, goodmoral, picture) VALUES ('$stID', '$eFullname', '$rformOne', '$rformTwo', '$rPsa', '$rGm', '$rPic')";
switch($eGrad){
case "Grade1" :
$fourthTB = "INSERT INTO `st_grade`(`st_id`,`subj_id`,`gr_id`,`sec_id`,`sy_id`,`first`,`second`,`third`,`fourth`,`ave`,`remarks`) VALUES
($stID, 1, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 2, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 3, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 4, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 5, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 6, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 7, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, '')";
break;
case "Grade2" :
$fourthTB = "INSERT INTO `st_grade`(`st_id`,`subj_id`,`gr_id`,`sec_id`,`sy_id`,`first`,`second`,`third`,`fourth`,`ave`,`remarks`) VALUES
($stID, 8, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 9, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 10, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 11, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 12, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 13, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),
($stID, 14, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, '')";
break;
default:
echo "error";
}
if ($this->conn->query($firstTB) && $this->conn->query($secondTB) && $this->conn->query($thirdTB) && $this->conn->query($fourthTB) ) {
return true;
} else {
return false;
}
}
На вопросы об опечатках не следует отвечать, они должны быть помечены как таковые (ссылка Flag под вопросом> 'нуждается в улучшении'> 'особая причина сообщества'> 'не воспроизводится или вызвана опечаткой'), а также оставить комментарий, инструктирующий OP о причине проблемы.
запятая в конце вызывает проблему
перед
($stID, 7, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),";
($stID, 14, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, ''),";
после
($stID, 7, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, '')";
($stID, 14, $eGrad, $secID, $syID, 0, 0, 0, 0, 0, '')";
удалите запятую (,) в конце в обоих случаях переключения, и он будет работать нормально
На вопросы об опечатках не следует отвечать, они должны быть помечены как таковые (ссылка Flag под вопросом> 'нуждается в улучшении'> 'особая причина сообщества'> 'не воспроизводится или вызвана опечаткой'), а также оставить комментарий, инструктирующий OP о причине проблемы.
в чем именно проблема?: а в чем конкретно ваш вопрос? Проверьте как создать минимальный воспроизводимый пример