数据库的目的
我正在使用带有 Apache 服务器的 mysql 数据库来存储家庭学校信息。我正在尝试跟踪类似于成绩册的每项作业,我可以在其中按主题和月份查询以跟踪分数。
我的数据库设计
assignment是主表,具有:id(primary auto inc)、student_id、subject_id、points_id、date、Notes_id 和 type。
notes包含关于作业的可选注释,并具有 id(primary auto inc)、note 和 date。
points具有可用于分配的分数和总分,并包含 id(primary auto inc)、received 和 total。
student是一个学生列表(我的孩子),包含 id(primary auto inc)、first_name 和 last_name(是的,我知道这个专栏是我的孩子,但我这样做是为了练习)。
subject是当前主题的列表,包含 id(primary auto inc)、name、description。我的逻辑是我每年都可以根据需要务实地添加更多科目。
type包含分配的类型,并包含 id(primary auto inc)、name、description。
现在我如何加入打印出来?
我需要将作业、学生、主题、分数、笔记加入到一个表中,我可以使用 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,例如:html 表中的 2012 年 9 月 12 日 Jane Doe 数学测验 25/28。
如果需要,请提供其他信息... 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!');
}
}