データベースの目的
ホームスクールの情報を保存するために、Apache サーバーで mysql データベースを使用しています。成績表のように各課題を追跡して、科目と月ごとにクエリを実行してスコアを追跡しようとしています。
私のデータベース設計
割り当てはメイン テーブルであり、id(primary auto inc)、student_id、subject_id、points_id、date、Notes_id、および type があります。
notesには、割り当てに関するオプションのメモが含まれており、id(primary auto inc)、メモ、および日付があります。
ポイントには、割り当てに使用できるスコアと合計があり、id(primary auto inc)、受け取った、および合計が含まれています。
Student は生徒(私の子供) のリストであり、id(primary auto inc)、first_name、および last_name が含まれています (はい、この列は私の子供なので無意味であることはわかっていますが、練習のために行いました)。
subjectは現在のサブジェクトのリストであり、id(primary auto inc)、名前、説明が含まれています。私の論理は、毎年必要に応じて実用的に科目を追加できるというものでした。
typeには割り当てのタイプが含まれ、id(primary auto inc)、name、description が含まれます。
印刷するにはどうすれば参加できますか?
課題、生徒、科目、点数、メモを 1 つのテーブルに結合する必要があります。このテーブルを while ループで反復処理して、最近のアクティビティ (データ入力) を html テーブルにエコーアウトできます。
次のような多くのバージョンを試しました。
$result = mysql_query("SELECT * FROM assignment, student, subject, points, notes
WHERE assignment.student_id = student.id
AND assignment.subject_id = subject.id
AND assignment.points_id = points.id
");
そうすることで、空のクエリしか生成されませんでした。誰かが私を正しい方向に向けることができますか? 私が探している最終結果は、次のような表示したい値を割り当てに格納された _id に入力する結合されたテーブルです。
必要に応じて追加情報... データを格納する PHP 関数
function submit_entry($con){
$student = $_POST['student'];
$subject = $_POST['subject'];
$type = $_POST['type'];
$notes = mysql_real_escape_string($_POST['notes'],$con);
$received = mysql_real_escape_string($_POST['received'],$con);
$total = mysql_real_escape_string($_POST['total'],$con);
//Retreive student data
$token = strtok($student, " ");
$student_firstname = $token;
$token = strtok(" ");
$student_lastname = $token;
$result = mysql_query("SELECT * FROM student WHERE first_name='$student_firstname'");
$row = mysql_fetch_array($result);
$student_id = $row['id'];
//Retrieve subject data
$result = mysql_query("SELECT * FROM subject WHERE name='$subject'");
$row = mysql_fetch_array($result);
$subject_id = $row['id'];
//Retrieve type
$result = mysql_query("SELECT * FROM type WHERE name='$type'");
$row = mysql_fetch_array($result);
$type_id = $row['id'];
//obtain last inserted ID (assignment)
if(!mysql_query("INSERT INTO points ( received, total)
VALUES ('$received', '$total')"))
{
die('Error: ' . mysql_error() . ' in points INSERT!');
}
$points_id = mysql_insert_id();
if(!mysql_query("INSERT INTO assignment (student_id, subject_id, type, date, points_id)
VALUES ('$student_id', '$subject_id', '$type_id', NOW(), '$points_id')"))
{
die('Error: ' . mysql_error() . ' in assignment INSERT!');
}
}