在用户输入日期和时间时修改mysql DB

时间:2012-11-21 00:19:00

标签: php mysql

我在php和mysql中使用测验Web应用程序,我有一个用户表和quizes表,管理员可以访问一个带有quizes名称的表和一个除了每个测验之外的复选框...

让我们说10个quizes编号从1到10,其中每一个对应于mysql中的一个测验,

当您单击测验旁边的复选框并点击SEND时,该特定测验可用于某个用户(在我之前已选择的页面上)但在同一页面上我想要输入带有时间的输入字段一个日期,该测验只能从当前时间到输入日期和时间....

用户表有一个名为is_available的每个测验的列,默认为零,我希望在选择该用户和测验时将该值更改为1,并在日期过后将其更改为零。

我一直在考虑如何做到这一点,但我不知道任何想法或指导方针去哪里或如何开始这样做???我需要heeeelp!和合

2 个答案:

答案 0 :(得分:0)

好吧,您将从包含所有字段的表单开始,并指向另一个与您的数据库通信的PHP脚本。然后,另一个PHP脚本将读取表单数据(通过$ _POST或$ _GET)并与数据库通信。然后它会根据此输出标记,形成输出页面。

这是一般骨架。如果你想要特定的细节,我建议你尝试尽可能多地实现,即使它是一个框架,然后发布,这将给其他人更多的工作。

答案 1 :(得分:0)

您可以使用MySQLPHPCRON

执行此操作

首先,创建一个关系表 -

CREATE TABLE `test_expiry` (
    `userid` int(2) unsigned NOT NULL,  // user that is taking the test
    `testid` int(2) unsigned NOT NULL,  // test number
    `expires` datetime NOT NULL);  // date/time test will expire
       //change names/types as needed / to match your db structure

其次,设置is_available = 1时,将该测试添加到test_expiry

INSERT INTO `test_expiry` (`userid`,`testid`,`expires`) VALUES (:userid,:testid,:expires)

第三,如果日期/时间已经过去,创建一个将更新is_available = 0的php页面。

SELECT `userid`, `testid` FROM `test_expiry` WHERE `expires` < NOW()
foreach row above ...
UPDATE `tests` SET `is_available` = 0 WHERE `userid` = :userid AND `testid` = :testid

最后,建立一个cron工作 -

* * * * *  [/path/to/php/]php /path/to/your/script/update.php