私は2つのテーブルを持っています:
スケジュール
id id_teacher subject class hour day
1 2 [->] Math X C 8 Monday
2 2 [->] Math X C 12 Wednesday
3 2 [->] Math X C 9 Tuesday
4 2 [->] Math VI B 10 Monday
5 2 [->] Math X C 11 Monday
6 2 [->] Math X C 10 Tuesday
7 5 [->] Chemistry X C 9 Monday
8 5 [->] Chemistry X C 12 Monday
9 2 [->] Sports X C 7 Monday
10 5 [->] Biology X C 11 Friday
11 2 [->] English X C 12 Friday
12 2 [->] Chemistry X C 9 Thursday
グレード
Id id_elev subject date grade semester
4 1 [->] English 2013-10-01 8 1
5 1 [->] Math 2013-10-03 7 1
6 1 [->] Math 2012-10-03 8 2
7 1 [->] English 2013-02-28 9 2
8 4 [->] Math 2013-10-06 5 1
9 4 [->] English 2013-07-02 7 2
10 4 [->] Sport 2013-10-01 9 1
11 1 [->] Math 2013-10-03 4 1
12 1 [->] English 2013-10-16 9 1
スケジュールからすべての科目を取得したい:
生物、化学、英語、数学、スポーツ
$sth1 = $dbh->prepare("SELECT * FROM schedule WHERE class = :class GROUP BY subject;");
$sth1->bindParam(":class", $a);
$sth1->execute();
while($result1 = $sth1->fetch(PDO::FETCH_ASSOC)){
echo $result1['subject']." ";
}
$a は 'X C' と等しい変数です。
今まではすべて問題ありません。
ここで、すべての科目とすべての科目の平均を選択したいと思います。
$sth = $dbh->prepare("SELECT id_student, subject, AVG(grade) FROM grades WHERE id_student = :id_student AND semester = 2 GROUP BY subject;");
$sth->bindParam(":id_student", $_SESSION['id']);
$sth->execute();
while($result = $sth->fetch(PDO::FETCH_ASSOC)){
echo $result['subject']." ".$result['AVG(grade)'];
}
そして、それは私に示しています:
英語 9.0000 数学 8.0000
しかし、スケジュールからすべての科目を選択して、学生がその科目の成績を持っていなくても年齢を上げたい...エコーが0でない場合。
すべての生徒の科目と成績をグラフにしようとしています。写真はおそらく私が望むものを正確に示しています。
ありがとうございました