首页 > 解决方案 > 用户登录后从数据库中显示合适的网页信息

问题描述

我有一些 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'; And Views I、III、IV。编辑-意识到没有必要。
  6. 根据意见,我想SELECT * FROM [viewname]在第 3 步执行。例如:SELECT * FROM [I] , SELECT * FROM [II], ... SELECT * FROM [IV]
  7. 但是必须根据用户登录来执行这四个中合适的语句。

我的方法正确吗?

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

编辑我的问题是添加一个过滤器。我希望用户根据他们所在的学期查看他们的科目和测试。学期是学生表的属性以及 roll_no 和密码。

标签: phpmysql

解决方案


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

方法一(我不喜欢这个)

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

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

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

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

  1. 创建新表“student_semester”,其中包含 id、semester_id(来自关联学期的外键)、student_id(来自关联学生的外键)、start_date 以及您可能想要的任何其他信息。
  2. 只需获取与该用户关联的最新记录,这将是当前学期
  3. 这种方法将允许您存储每个学生的学期历史

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


推荐阅读