sql >> データベース >  >> RDS >> Mysql

ユーザーのオンラインオフラインステータス-オフラインステータスの問題

    DB構造を知らなくても、それは一種の推測です。

    if ($time >= $loggedtime)
    

    '2012-11-0110:10:10'のような文字列を$timeと比較しています DBにあります。これがここでの問題のようです。UNIXタイムスタンプを使用できます/使用する必要があります。それらは簡単に比較できます。

    $timeの場合 ただできるUNIXタイムスタンプでした:

    if ($time >= time()-300)
    

    編集:

    クエリを変更して、onlineのUNIXタイムスタンプを取得します

    $query = 'SELECT userid, handle, UNIX_TIMESTAMP(online) as online FROM ^users ORDER BY userid ASC';
    

    編集2: より明確にするために:最初のバージョンでは、「2012-11-0110:10:10」の形式で2つの日付を比較していました

    if ('2012-11-01 10:10:10' < '2012-11-02 10:10:10')
    

    これはPHPでは機能しません-次のようになります:

    if ('apples' < 'bananas')
    

    数字を比較する必要があります。したがって、簡単に比較できるUNIXタイムスタンプを使用することをお勧めします。



    1. MariaDBでのMAKEDATE()のしくみ

    2. プリペアドステートメントでテーブル名をパラメータ化できますか?

    3. 11gで収集する増分統計

    4. 一般的なデータベースサーバーの構築と展開の手順