0

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

假设有 10 个测验,编号从 1 到 10,每个测验对应于 mysql 中的一个测验,

当您单击测验旁边的复选框并点击发送时,特定用户可以使用该特定测验(在我已经选择的前一页上)但是在同一页面上我想输入带有时间和日期的输入字段,并且该测验仅在当前时间到输入日期和时间之间可用....

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

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

4

2 回答 2

0

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

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

于 2012-11-21T00:24:21.740 回答
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
于 2012-11-21T03:32:37.717 回答