PHP如何动态考勤基于系统


php how to dynamic attendance based system

holla guys

我正在创建一个 PHP Web 应用程序,它允许管理员勾选谁上过课。

我在数据库中有以下数据

学期

开始日期、学期结束日期、上课日期和时间

例如

5 March 20129th April 2012 Monday{9,12},Thursday{14,17}

我可以获得基于开始和结束日期的总周数。现在的问题在于我如何获得课程应该在的日期,比如星期一,它应该是 9 日,但在星期四?动态。

是否有任何php类或任何方法?

多谢

不要自己实现日期函数,处理日期时有很多陷阱。您可以使用 strtotime 通过使用以下字符串来循环访问日期: strtotime("next Thursday", yourdate)

不确定此时

是否适合更改数据的格式,但我建议构建数据库的方式(这将大大简化查询您询问的信息类型)将是这样的:

CREATE TABLE `student_attendance` (
  `student` INT(11) NOT NULL,
  `class` DATETIME NOT NULL,
  `attended` BOOLEAN NOT NULL,
  PRIMARY KEY (`student`,`class`)
)

然后,要查询学生参加了多少天,您可以执行以下操作:

SELECT COUNT(*) 
FROM `student_attendance` 
WHERE `student` = '1'
AND `attended` = TRUE;

当然,如果不进一步了解您究竟要完成什么,我不能确定这是否完全合适。 虽然你用来存储数据的格式似乎会让你的生活变得不必要的困难(你将不同的数据点组合成一列;这是一个禁忌),所以我想这是一个改进。

编辑:更准确地说,保存日期和时间(而不是日期和时间);例如:

CREATE TABLE `student_attendance` (
  `student` INT(11) NOT NULL,
  `class_date` DATE NOT NULL,
  `class_period` TINYINT(4) NOT NULL,
  `attended` BOOLEAN NOT NULL,
  PRIMARY KEY (`student`,`class_date`,`class_period`)
)