2012-03-15 10 views
0

私のコードのこの部分は、学生の学期の結果(コースの得点)を要求するたびに、採点を採点するために使用されます。しかし、すべての得点に特定の等級しか与えられない場合、ほとんどの場合、学生データベースにアップロードされた最後の結果がすべての得点に授与されます。グレードに期間を追加した場合、つまり私の採点システムの問題

$grade .= 'A'; 
    $grade .= 'B'; 
    $grade .= 'C'; 
    $grade .= 'D'; 
    $grade .= 'E'; 

すべてのグレードを各列で繰り返しました。だから、特定の学生が学期中に6コースを取り、すべての6つのグレードが6コースに各行に繰り返した

3 A's , 2 B's , 1 C 

の合計を持っていたと仮定します。

コードの一部を表示することができて嬉しく思います。 お時間をありがとうございました。

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'; 
      }else{ 
      $grade = 'F'; 
      } 
      } 

これは、学生の学期コースのスコアを検索するクエリです(クエリ8)。

 $query8 = mysql_query("SELECT 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()); 
+0

:それは、ループの最後の行のように見える

、すべてのif文の後に、このようなものでなければなりませんか? –

+0

'$ query8'は何が起こっているのかを知る上で間違いなく重要です。あなたの 'JOIN'がすべての組み合わせを返す' CROSS JOIN'を確実にしているようです。 – Guvante

+0

@guvante ...私が提供すべきコードの他の部分は何ですか? .... アダム私の学校はします。 –

答えて

0

任意のループロジックが使用されたときに何を得る結果を取得することができARR $から、今この

$arr = array(); 
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'; 
      }else{ 
      $grade = 'F'; 
      } 

      $arr[$row8['score']] = $grade; 
      } 

好きです... ...配列につながる格納する必要があります... ありがとう

+0

私は配列を追加しましたが、私はまだ同じ答えを持っています。ありがとう –

+0

ロジックが完璧であることを参照してください...データの取得に問題がある可能性があります...チェック.. http://snippi.com/s/a1eq71x –

+0

ありがとう、百万。私はデータを呼び出すために使用しているクエリを問題にすることができますか? http://pastebin.com/s7QwCC3e ありがとう –

0

A/B/C/D/E/Fに設定する以外に、ループ内で$ gradeを使用することは決してありません。だから、最後の得点がどのような価値を持っていても$グレードの最終的な価値が決まるでしょう。あなたは$ gradeの価値をどこに他のものに適用しますか? `E`グレードを提供するどのような学校

do_something_with_grade($grade);