用户登录后在数据库上的网页上显示合适的信息

时间:2019-01-26 01:51:23

标签: php mysql

我有一些PHP代码和一个数据库。

  1. 用户可以使用卷号,密码和学期进行注册。我确实打算稍后再提供部门。
  2. 老师可以根据学期添加科目。他们可以根据科目添加课堂测试。
  3. 在最简单的情况下,我能够使用view_subjects.php登录和查看页面'view_tests.php'和'SELECT * ..'上的所有主题和所有测试
  4. 我想添加一个简单的修改。我希望能够显示基于学期用户的科目和测验,即过滤器。
  5. 我创建了视图I,II,III,IV,其中视图名称是学期,并且基于CREATE VIEW II AS SELECT * subjects WHERE semester='II'; 和意见一,三,四。编辑-意识到没有必要。
  6. 基于视图,我想在步骤3中执行SELECT * FROM [viewname]。例如:SELECT * FROM [I] , SELECT * FROM [II], ... SELECT * FROM [IV]
  7. 但是必须根据用户登录来执行这四个语句中的适当语句。

我的方法正确吗?

如果是这样,他/她登录后如何获得学期名称 否则,我该如何解决这个问题?

编辑,我的问题是添加过滤器。我希望用户根据他们所在的学期查看他们的科目和测验。学期是Student表的属性以及roll_no和password。

1 个答案:

答案 0 :(得分:0)

我希望这是有道理的,我不会编写代码,因为我不知道您在那里使用的是什么,但是对于这种情况,以下将是基本思想。

方法一(我不喜欢这样)

  1. 在学生表中添加current_semester字段,用于存储学期ID。每当学生完成一个学期时,此信息就会更新。

  2. 在加载信息页面之前,将current_semester的值保存在变量中,并使用诸如“ SELECT * FROM [semester table] WHERE id = [current_semester]”之类的

这将为您提供他/她当前学期的学期,但不会保存他的学期历史。

建议的方法(使用不同的表格保存学生的学期历史记录)

  1. 使用ID,semester_id(关联的学期的外键),student_id(关联的学生的外键),start_date和您可能需要的其他任何信息来创建新表“ student_semester”。
  2. 仅获取与该用户相关的最新记录,这将是当前学期
  3. 该方法将允许您存储每个学生的学期历史记录

建议:使用Laravel,Eloquent使这种工作非常容易。