2

毎日のボーナス システムをコーディングする必要があります。ユーザーは、1 日 1 回ボーナスを受け取ることができなければなりません。私はそのようなものをコーディングしました:

function checkDailyBonus($user, $type) {
    global $ado;
    $last_day = strtotime(date("Y:m:d 00:00:00"));

    $query = $ado->exec("SELECT * FROM claimed_bonuses WHERE `user` = '$user' and `type` = '$type' ORDER BY `id` DESC");
    $row = mysql_fetch_assoc($query);
    $date = strtotime($row['date']);
    if ($ado->count($query) < 1) {
        return 1;
    } else {
        if ($last_day < $date) {
            return 0;
        } else {
            return 1;
        }
    }
}

しかし、それは間違った結果を返します: 最後の請求ボーナス スクリプトが 0 を返すよりも今日の方が高い場合でも、代わりに 1 を返す必要があります。最後の請求日は 2013-05-19 23:05:41 です。助けてくれてありがとう。

4

2 に答える 2

2

ええと、どうしてですか。

SELECT ..
FROM claimed_bonuses
WHERE DATE(lastbonus) < CURDATE()

これらすべての strtotime 呼び出しに無意味ではありません。PHP でユーザー テーブル全体をフィルター処理するのは、MySQL でクエリで直接実行する方がはるかに簡単です...

于 2013-05-23T19:54:33.640 に答える