2016-07-08 8 views
-1

私はサッカートーナメント/カップのための賭博ゲームをプログラミングしています。このゲームでは、試合の開始5分前まで、ユーザーはベットをフォームに置くことができます。その時点以降、フィールドは無効にされ/グレー表示されるので、入力値は表示されますが、編集可能なものはありません。mysqlタイムスタンプのタイムスタンプに基づいて入力フィールドを無効にする

timedate(mysqlテーブルの各ゲームに保存されている)に基づいて、これらの「スコア入力フィールド」を自動的に無効にすることはできますか?

コードの詳細やmysqlテーブルの詳細が必要な場合は、質問してください。

SQLクエリ&テーブル

$records = mysqli_query($conn, " 
    SELECT 
     sp.spiel_id, 
     DATE_FORMAT(sp.datum, \"%d.%m.%Y\") AS datum, 
     DATE_FORMAT(sp.zeit, \"%H:%i\") AS zeit, 
     sp.heimteam_id, 
     sp.gastteam_id, 
     sp.tore_heimteam, 
     sp.tore_gastteam, 
     ht.teamname AS heimteam_name, 
     at.teamname AS gastteam_name, 
     t.match_id, 
     t.user_id, 
     t.tipp_heim, 
     t.tipp_gast, 
     t.punkte_tipp, 
     u.user_id, 
     u.username 
    FROM 
     spielplan sp 
    LEFT JOIN mannschaften ht 
     ON sp.heimteam_id = ht.mannschafts_id 
    LEFT JOIN mannschaften at 
     ON sp.gastteam_id = at.mannschafts_id 
    LEFT JOIN tipps t 
     ON sp.spiel_id = t.match_id 
    LEFT JOIN users u 
     ON t.user_id = u.user_id 
    WHERE 
     username = '".$_SESSION["username"]."' 
    ORDER BY 
     spiel_id ASC 
"); 
while($fields = mysqli_fetch_assoc($records)) { 
    ?> 
    <tr> 
     <input type="hidden" name="spiel_ids[]" value="<?php echo $fields["spiel_id"] ?>"> 
     <td><?php echo $fields["datum"] ?></td> 
     <td><?php echo $fields["zeit"] ?></td> 
     <td><?php echo $fields["heimteam_name"] ?></td> 
     <td><?php echo $fields["tore_heimteam"] ?></td> 
     <td>:</td> 
     <td><?php echo $fields["tore_gastteam"] ?></td> 
     <td><?php echo $fields["gastteam_name"] ?></td> 
     <input type="hidden" name="user_ids[]" value="<?php echo $fields["user_id"] ?>"> 
     <td><input type="tel" maxlength="2" size="5" name="tipps_heim[]" value="<?php echo $fields["tipp_heim"] ?>"></td> 
     <td><input type="tel" maxlength="2" size="5" name="tipps_gast[]" value="<?php echo $fields["tipp_gast"] ?>"></td> 
     <td><?php echo $fields["punkte_tipp"] ?></td> 
    </tr> 
<?php 
} 
?> 
+0

SQL、...男 –

+0

何も私はそれを達成する方法については考えているよう。私の唯一の考えは、javascriptを使用して、 "match-time"から5分を差し引いた入力フィールドに 'readonly'を追加することです。 – mario

答えて

1

私はあなたがこれを行うことはお勧めしませんが、あなたはこれを試すことができます。

たとえば、それはあなたが

<input name="spiel_ids[]" value="<?php echo $fields["spiel_id"] ?>"> 
を無効にしたいあなたのフィールドです

あなたはあなたに基づいて$ disabled変数を宣言できます:

<?php 
    $disabled = ""; 

    //you check if you date is in future, then you disable field 
    if (date('Y-m-d', strtotime($fields['datum'])) > date('Y-m-d')) { 

     $disabled = "disabled='disabled'"; 
    } ?> 

そして、あなたの出力文字列に、この変数を置く:1つのファイルにJSとphpの

<input <?php echo $disabled ?> name="spiel_ids[]" value="<?php echo $fields["spiel_id"] ?>"> 
+0

なぜあなたはこれを覚えていませんか?私にはかなり妥当だと思われる。 – mario

+1

最初に気になることは、簡単にチートすることです。 1行のコードで再度入力が可能なので、ベット処理スクリプトでまだベットが許可されているかどうかをチェックするコードを追加する必要があります。入力を削除してテキストフィールドに置き換える方が安全でしょう。 – Shilly

+0

私はsqlとphpを1つのファイルで使用することをお勧めしません。 –

関連する問題