2016-07-07 8 views
-2

私は宝探しのためにWebアプリケーションを開発中です。オンラインサーバへの接続はすべて正しく、アプリケーションは正常に動作しています。 mysqlデータベース。私のアプリケーションでphpとmysqlコードはlocalhostで動作しますが、オンラインサーバに問題があります

私は(終了時間)(終了時間)について(開始時間)とのセッションのためにセッションを登録すると、ユーザーがゲームを終了したことを意味します。

私は(終了時間を)この(終了時間)から勝者番号を取得し、そこに基づいて受賞者を整理しています

問題は、localhostの(XAMPPを使用して)私が手に勝者番号は正しく。私は私のホスティング(CPanelのとのLinux)に自分の作品をアップロードする場合、私は常に0として勝者を取得しながら、(それが最初ではなかったとしても)

これは私がオンライン

を取得した結果であります

this is the result that I get online

私はローカルホスト上だ場合、私が正しく勝者番号を取得しながら、

localhost I get the winner number correctly

これは勝者を取得するためのコードです:

function getWinner($uid, $set){ 

    $db = new Db(); 
    $winner = 0; 
    $query = "SELECT endtime FROM eid_race WHERE id = '$uid' AND endtime IS NOT NULL"; 
    $result = $db->query($query); 
    if(sizeof($result) == 0){ 
     $updateEndtime = "UPDATE eid_race SET endtime = UNIX_TIMESTAMP() WHERE id = '$uid'"; 
     $db->execute($updateEndtime); 
    } 
     $query = "SELECT COUNT(id) FROM eid_race WHERE id <> '$uid' AND endtime IS NOT NULL AND endtime < (SELECT endtime FROM eid_race WHERE id = '$uid') AND questionset = '$set'"; 
    $result = $db->query($query); 
    echo ' result: ' . $result[0][0]; 
    if(sizeof($result) == 1){ 
     $winner = $result[0][0]; 
     echo ' winner: '.$winner; 
    } 

    echo ' winner after: '.$winner; 


    return $winner+1; 

} 

私はphpMyAdminの上で直接クエリをテストするとき、私は正しい結果が、PHPの結果はまだ0

SELECT COUNT(id) FROM eid_race WHERE id <> '577dd5759fa67' AND endtime IS NOT NULL AND endtime < (SELECT endtime FROM eid_race WHERE id = '577dd5759fa67') AND questionset = 'A' 

enter image description here

+1

使用current datetime確認し、サーバー上のphpinfo()を使用してテストファイルを入れて、PHP/MySQLのバージョンを比較することであると思います。 –

+2

@SumanSinghが正しいですし、mysqlの 'datetime'と' timestamp'を扱っているので、 'timezone'と' date time settings'をチェックしてください。 – Avishek

+0

@SumanSingh ** localhost:** PHPバージョン5.6.15、mysqlクライアントAPIバージョンmysqlnd 5.0.11-dev、**オンラインサーバ:** PHPバージョン5.3.29、mysqlクライアントAPIバージョン5.6.30 - –

答えて

0
を取得

timezonemysqlmy.iniのファイルに変更することができます。ウィンドウmy.cnfのファイルはにあります。とシステムです。 は、しかし、私は最善の解決策は

set time_zone = '+2:00'; --Timezone:Europe/Berlin 

を使用して、クエリからタイムゾーンを変更し、select now();

+0

localhost time_zoneは '+2:00'(ヨーロッパ/ベルリン)オンラインではUTC –

+0

をチェックしています。* localhost:* 2016-07-07 08:43:12、** Online:** 2016-07-07 13:43:49 –

+0

Okを実行し、 'set time_zone = '+2:00'; 'サーバー上でチェックしてください。 – Avishek

関連する問題