Предполагается, что студент проходит 6 курсов в семестре.У всех этих коусов есть курьерские единицы (int), и в зависимости от оценки в каждом курсе есть баллы ..
so a score >=70 will have a point of 5
<70 and >=60 will have a ponit of 4
и так далее.Для каждой единицы курса и точки умножаются вместе, вниз по столбцу для каждого столбца.Теперь, когда оценка по курсу не найдена, оценка составляет «AR».Теперь я хочу, чтобы циклы пропускали AR, т.е. не добавляли единицу курса с оценкой «AR».Но когда я выполняю свои запросы над единицами, они все равно добавляются к общим единицам курса.
Query4 используется для генерации некоторых строк course_unit и Score
$query4 = mysql_query("SELECT c.course_unit, m.score
FROM maintable AS m
INNER JOIN students AS s ON
m.matric_no = s.matric_no
INNER JOIN courses AS c ON
m.course_code = c.course_code
WHERE m.matric_no = '".$matric_no."'
AND m.level = '".$level."'")
or die (mysql_error());
Query3 используется для суммирования course_units
$query3 = mysql_query("SELECT SUM(c.
course_unit) AS 'TOTAL'
FROM maintable AS m
INNER JOIN students AS s ON
m.matric_no = s.matric_no
INNER JOIN courses AS c ON
m.course_code = c.course_code
WHERE m.matric_no = '".$matric_no."'
AND m.level = '".$level."'")
or die (mysql_error());
Оценки в отношении оценки
while ($row8 = mysql_fetch_assoc
($query8)) {
if ($row8['score'] >= 70) {
$grade = 'A';
}
elseif ($row8['score'] >= 60) {
$grade = 'B';
}elseif ($row8['score'] >= 50) {
$grade = 'C';
}elseif ($row8['score'] >= 45) {
$grade = 'D';
}elseif($row8['score'] >= 40) {
$grade = 'E';
}elseif($row8['score'] >= 0) &&
($row8['score'] < 40){
$grade = 'F';
}else{
$grade = 'AR';
}
}
Расчет балла оценки
$grade_point = 0;
while ($row4 = mysql_fetch_assoc($query4)) {
if ($row4['score'] >= 70) {
$score = 5;
}
elseif ($row4['score'] >= 60) {
$score = 4;
}elseif ($row4['score'] >= 50) {
$score = 3;
}elseif ($row4['score'] >= 45) {
$score = 2;
}elseif($row4['score'] >= 40) {
$score = 1;
}elseif($row4['score'] >= 0 AND $row4['score'] < 40) {
$score = 0;
}else{
$score = 0;
}
$grade_point += $score * $row4['course_unit'];
}
Я добавил
if ( $grade == 'AR' )
{
continue;
}
Но вычисления все те же,Он добавляет значение course_unit любого курса, имеющего
$grade == 'AR' .
. Я буду очень рад вашим ответам.Большое спасибо.
ОБНОВЛЕНИЕ
Мне удалось решить часть оценки, добавив
elseif($row4['score'] >= 0 AND $row4['score'] < 40) {
$score = 0;
}else{
$score = 0;
}
Это устанавливает оба случаяоценка от 0 до 39 до нуля, а также оценка по умолчанию от <0 (т.е. AR) до нуля.Но он по-прежнему устанавливает значение курсов, имеющих оценку AR и балл -1, к соответствующим значениям по умолчанию для course_unit. </p>
Я думаю, что эта проблема возникает из-за того, что course_unitпредварительно загружен из базы данных.Любая помощь?
Courses Table Stucture
=================
course_id
course_code
course_title
course_unit
Я буду очень рад вашим ответам.Спасибо в ожидании.