0

私はphpとmysqlでクイズWebアプリケーションに取り組んでいます。ユーザーテーブルとクイズテーブルがあり、管理者はすべてのクイズのほかにクイズ名とチェックボックスを持つテーブルにアクセスできます...

1 から 10 までの番号が付けられた 10 個のクイズがあるとします。これらの各クイズは、mysql のクイズに対応しています。

クイズの横にあるチェックボックスをクリックして [送信] をクリックすると、特定のユーザー (前のページで既に選択したもの) がその特定のクイズを利用できますが、同じページに時間と日付を含む入力フィールドを配置したいと考えています。そのクイズは、現在時刻から入力日時までしか利用できません....

ユーザーテーブルには、is_available という名前のすべてのクイズの列があり、デフォルトはゼロです。そのユーザーとクイズが選択されたときにその値を 1 に変更し、日付が過ぎたらゼロに戻す必要があります..

私はこれを行う方法を考えてきましたが、どこに行くべきか、またはこれをどのように開始するかについての手がかり、アイデア、またはガイドラインがありませんか??? 私はheeeelpが必要です!へへ

4

2 に答える 2

0

まず、すべてのフィールドを含むフォームと、データベースと通信する別の PHP スクリプトを指すアクションから始めます。次に、他の PHP スクリプトが ($_POST または $_GET を介して) フォーム データを読み取り、データベースと通信します。次に、これに基づいてマークアップを出力し、出力ページを形成します。

それが一般的な骨格です。具体的な詳細が必要な場合は、フレームワークであってもできる限り実装してから投稿することをお勧めします。これにより、他の人がより多くの作業を行うことができます。

于 2012-11-21T00:24:21.740 に答える
0

You can do this using MySQL, PHP, and CRON

First, create a relational table -

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

Second, when setting is_available = 1, add that test to the test_expiry table

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

Third, create a php page that will update is_available = 0, if date/time has past.

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

And last, set up a cron job-

* * * * *  [/path/to/php/]php /path/to/your/script/update.php
于 2012-11-21T03:32:37.717 に答える