Kullanıcıların her saat sunulan bir giriş çarpmak için izin?

2 Cevap php

Yani, insanlar benim veritabanında yazdı kadarıyla "çarpmak" ama aynı zamanda sadece girdi bir anda KEZ tabloda olması için izin vermek mümkün olmak istiyorum.

Örneğin:

Jim'in kodu 5555. Jim onun kodunu girer ve bu tablonun çok altına vuruyor. 34 dakika sonra o (diğer çeşitli insanlar şimdi ve sonra arasında kendi kodu girildiği Çünkü) yine onun kodunu girmek için çalışır ama ona hala beklemek 26 dakika var bildirerek bir ekran hatası alır.

Joe kodu girer ve bir saat beş dakika bekler ve tekrar dibe onun kodunu itmek yapabiliyor.

Temelde, benim tabloda alttan verileri görüntüleyen ediyorum.

Kolay bunu yapmak için herhangi bir yolu var mı? Teşekkürler.

function some_more_custom_content() {

    $output="<BR>";

    ob_start();

    if ($_REQUEST['code'] != "") {
        $code = $_REQUEST['code'];
        $query="INSERT INTO `fc` (`code`,`datetime`) values ('" . mysql_real_escape_string($code) . "', now())";
        $result=mysql_query($query);
        $entry['datetime'] = strtotime($entry['datetime']);

        while ($fetch_array = mysql_fetch_array($result)) {
            $seconds = time() - strtotime($fetch_array["datetime"]);

            if ((time() - $entry['datetime']) < 60*60) {
                echo ("The code " . htmlentities($code) ." was updated less than an hour ago.");
            } else {
                echo ("Inserted " . htmlentities($code) ." into the top.");
            }
        }
?>

Ben bir sözdizimi hatası alıyorum. O herhangi bir fikir?

UPDATE: Getting error of : Parse error: syntax error, unexpected $end

2 Cevap

Eğer kodu alanına benzersiz bir dizin içeren bir tablo oluşturun ve sonra bir sorgu gibi kullanmalısınız:

INSERT INTO CODES (code) 
  VALUES (555)
  ON DUPLICATE KEY UPDATE lastUpdated = 
               case when NOW() - INTERVAL 5 MINUTE > lastUpdated 
                  then NOW() 
                  else lastUpdated end

5 dakika daha yaşlı olduğunda, bu durumlarda sadece LastUpdated alanını güncelleyecektir

Kadar zor değil:

Son "yumru kez" için bir zaman damgası kullanın.

When a code is entered, check if it already exists in the database.
If it doesn't, insert it and set the bump timestamp to now().
If it does exist, check if the timestamp was within the hour. If it was, display error.
If it wasn't, reset it to now().

Yumru damgası Sıralama ekran veri.

EDIT:

$entry = /* get entry from database, assuming the case where it already exists */;

// depending on the format of timestamp you get from the database,
// you may have to convert it to a UNIX timestamp:
$entry['timestamp'] = strtotime($entry['timestamp']);

if ((time() - $entry['timestamp']) < 60*60) { // 60*60 is one hour in seconds
    // display error
} else {
    // reset bump
}